Quintiq file version 2.0
|
#parent: #root
|
Method SynchronizeClassTypes (Lib3DS_Entities entities) as owning Lib3DS_ClassTypes
|
{
|
TextBody:
|
[*
|
entitieswithoutclasstype := selectset( entities, Elements, entity,
|
isnull( entity.ClassType() ) );
|
|
path := 'op/fetch';
|
querystring := 'select=type&select=type.derived&select=type.derived.derived'
|
+ '&select=type.derived.derived.derived&select=type.derived.derived.derived.derived'
|
+ '&select=type.derived.derived.derived.derived.derived&select=type.derived.derived.derived.derived.derived.derived'
|
+ '&select=type.derived.derived.derived.derived.derived.derived.derived&select=type.derived.derived.derived.derived.derived.derived.derived.derived'
|
+ '&select=type.derived.derived.derived.derived.derived.derived.derived.derived.derived'
|
path := path + '?' + querystring;
|
|
body := this.Root().GetClassTypeQueryBody( entitieswithoutclasstype );
|
|
nvtrequest := LibInt_MessageAccessor::CreateEmptyMessage();
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, '_QI.ContentType', 'RAW' );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HttpEndpointMethod', 'POST' );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HttpEndpointPath', path );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HTTPHeader.Accept', 'application/json' );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HTTPHeader.Content-Type', 'application/json' );
|
LibInt_MessageAccessor::SetBodyValueAsString( nvtrequest, body );
|
|
nvtresponse := LibInt_IntegratorProxy::SyncNvtRequest( this.Root().IntegratorID(), '', nvtrequest );
|
response := LibInt_MessageAccessor::GetBodyValueAsString( nvtresponse );
|
|
jsonresponse := JSON::Parse( response );
|
|
if( not isnull( jsonresponse ) )
|
{
|
this.Root().ParseClassTypeQuery( jsonresponse );
|
}
|
|
// Propagate Lib3DS_Entity::ClassType() relation
|
Transaction::Transaction().Propagate( relation( Lib3DS_Entity, ClassType ) );
|
|
return selectset( entities, Elements.ClassType, classtype, true );
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|