Quintiq file version 2.0
|
#parent: #root
|
Method SynchronizeExtensionTypes (Lib3DS_Entities entities) as owning Lib3DS_ExtensionTypes
|
{
|
TextBody:
|
[*
|
extensions := selectuniquevalues( entities, Elements.Extensions, extension,
|
isnull( extension.ExtensionType() ),
|
extension.Type() );
|
|
traverse( extensions, Elements, extension )
|
{
|
entity := select( entities, Elements, entity,
|
exists( entity, Extensions, ext, ext.Type() = extension ) );
|
|
if( not isnull( entity ) )
|
{
|
path := '';
|
if( entity.Kind() = Lib3DS_EntityKind::Object() )
|
{
|
path := path + 'bus';
|
}
|
else if( entity.Kind() = Lib3DS_EntityKind::Relation() )
|
{
|
path := path + 'rel';
|
}
|
|
extensionUrl := URL::Encode( extension );
|
querystring := 'select=interface%5B' + extensionUrl + '%5D.name&select=interface%5B' + extensionUrl + '%5D.allparents';
|
path := path + '?' + querystring;
|
|
nvtrequest := LibInt_MessageAccessor::CreateEmptyMessage();
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, '_QI.ContentType', 'RAW' );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HttpEndpointMethod', 'GET' );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HttpEndpointPath', path );
|
LibInt_MessageAccessor::SetHeaderProperty( nvtrequest, 'HTTPHeader.Accept', 'application/json' );
|
|
nvtresponse := LibInt_IntegratorProxy::SyncNvtRequest( this.Root().IntegratorID(), '', nvtrequest );
|
response := LibInt_MessageAccessor::GetBodyValueAsString( nvtresponse );
|
|
jsonresponse := JSON::Parse( response );
|
|
if( not isnull( jsonresponse ) )
|
{
|
this.Root().ParseExtensionTypeQuery( jsonresponse );
|
}
|
}
|
}
|
|
Transaction::Transaction().Propagate( relation( Lib3DS_Extension, ExtensionType ) );
|
|
extensiontypes := selectset( entities, Elements.Extensions.ExtensionType, extensiontype, true );
|
|
return &extensiontypes;
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|