Solved

Scheduling Workspace Data and Planning Workspace Data

  • 18 July 2023
  • 9 replies
  • 114 views

Badge +4

Dear Community,

I have added some sample Resource data manually under “Planning” workspace, and also created an activity / resource data using through REST API ( http://…./../IFSSchedulingRESTfulGateway/api/v1/scheduling/data?dataType=SCHEDULE&datasetId=Default&includeInput=true&includeOutput=true ) added under scheduling workspace,  I see the DSE has been picked up the resources from Scheduling workspace and scheduled the activities rather from Planning workspace.  Also I am able to create same resource ( with same resource ID ) in scheduling workspace as already added  in the Planning workspace.  Is this normal behaviour that we can add duplicate resource data in Scheduling and planning workspaces ??  Can anyone please clarify on this ?

icon

Best answer by Alexander Heinze 19 July 2023, 05:31

View original

9 replies

Userlevel 6
Badge +18

It is the expected behavior, it’s rather a decision on your side which way to go. The integration from IFS Cloud to PSO for example only uses the scheduling dataset. One benefit of the modelling dataset (i.e., the Planning workspace) is that it can re used my multiple scheduling datasets. The main purpose (AFAIK) of the modelling dataset is that it allows you to utilize almost all PSO capabilities even if your upstream system does not have all the necessary data.

Are you using PSO standalone (with a custom upstream system) or in conjunction with FSM or IFS Cloud?

Badge +4

Hi Alexander,

Thank you so much for the swift response.  We are using PSO standalone installed in on-premises at the moment and trying to integrate with a middleware system. As you said ,how could I make use of the modelling dataset (i.e., the Planning workspace) as my DSE is only picking the data in scheduling data loading through “…/../IFSSchedulingRESTfulGateway/api/v1/scheduling/data” API and allocating the activities. How can we enable DSE to pick the data from the Planning workspace.  Or Can we completely ignore the metadata data in “Planning workspace” ?  I think, our model needs to be able to use Planning Workspace to store the metadata and utlilise it in Scheduling the activities.  

Userlevel 6
Badge +18

You can 1) ignore the Planning workspace (i.e., the modelling data) if your source system is able to provide ALL relevant data. You could also 2) maintain all data in the modelling dataset and only send activities from the source system. Or 3) use a something between these extremes. 

However for the DSE to consider the modelling dataset (options 2 and 3), you specify it as part of the initial LOAD message. Check out the Scheduling Schema Guide, Entity Source_Data, section Modelling / Advanced Resource Planner Data Extract. 
 

Badge +4

Hi Alexander,

Thank you so much for the swift response and its helpful for my implementation and data load.  

Can you advise me whats the importance/business use case of The Broadcast manager which can be configured to post data out from PSO to a external RESTful endpoint?  is your team used it to post data external system ?  Please let me know how we can use it apart from PSO RESTFul gateway.

Userlevel 6
Badge +18

The RESTful gateway can query or send data, however it’s triggered from the external system. The broadcast manager however allows PSO to send data to the external system proactively, for example when the plan has reached a certain quality or when changes occur. So this component is absolutely critical.

Badge +4

Thank you Alexander,

Can you please give me a hint on how to  configure this broadcast manager to allow PSO to send data to the external system proactively,?  

Userlevel 6
Badge +18

Here’s an example taken from the standard IFS Cloud to PSO integration. This is sent upon LOAD:

<dsScheduleData xmlns="http://360Scheduling.com/Schema/dsScheduleData.xsd">
.....
<Broadcast>
<id>20</id>
<active>true</active>
<broadcast_type_id>REST</broadcast_type_id>
<description>Ventechi Netherlands</description>
<plan_type>CHANGE</plan_type>
<minimum_plan_quality>85</minimum_plan_quality>
<minimum_step_interval>1</minimum_step_interval>
<once_only>false</once_only>
<maximum_wait>PT1M</maximum_wait>
<maximum_frequency>PT1M</maximum_frequency>
<allocation_type>1</allocation_type>
</Broadcast>
<Broadcast>
<id>ABE</id>
<active>true</active>
<broadcast_type_id>REST</broadcast_type_id>
<plan_type>CHANGE</plan_type>
<minimum_plan_quality>100</minimum_plan_quality>
<minimum_step_interval>1</minimum_step_interval>
<once_only>false</once_only>
<allocation_type>2</allocation_type>
</Broadcast>
<Broadcast>
<id>SWB</id>
<active>true</active>
<broadcast_type_id>REST</broadcast_type_id>
<plan_type>WORKBENCH</plan_type>
<minimum_plan_quality>100</minimum_plan_quality>
<minimum_step_interval>1</minimum_step_interval>
<once_only>false</once_only>
</Broadcast>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>url</parameter_name>
<parameter_value>https://<URL>/main/ifsapplications/projection/v1/SchedulingServices.svc/IncomingSchedules(Id=19)/Data</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>httpmethod</parameter_name>
<parameter_value>PATCH</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>username</parameter_name>
<parameter_value>IFS_scheduling</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>password</parameter_name>
<parameter_value>password</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>auth_token_url</parameter_name>
<parameter_value>https://<URL>/auth/realms/<org>/protocol/openid-connect/token</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>mediatype</parameter_name>
<parameter_value>application/octet-stream</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>etag</parameter_name>
<parameter_value>*</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>20</broadcast_id>
<parameter_name>compression</parameter_name>
<parameter_value>gzip</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>url</parameter_name>
<parameter_value>https://<URL>/main/ifsapplications/projection/v1/SchedulingServices.svc/IncomingSchedules(Id=20)/Data</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>httpmethod</parameter_name>
<parameter_value>PATCH</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>username</parameter_name>
<parameter_value>IFS_scheduling</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>password</parameter_name>
<parameter_value>password</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>auth_token_url</parameter_name>
<parameter_value>https://<URL>/auth/realms/mu7zd031/protocol/openid-connect/token</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>mediatype</parameter_name>
<parameter_value>application/octet-stream</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>etag</parameter_name>
<parameter_value>*</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>ABE</broadcast_id>
<parameter_name>compression</parameter_name>
<parameter_value>gzip</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>url</parameter_name>
<parameter_value>https://<URL>/main/ifsapplications/projection/v1/SchedulingServices.svc/IncomingSchedules(Id=21)/Data</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>httpmethod</parameter_name>
<parameter_value>PATCH</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>username</parameter_name>
<parameter_value>IFS_scheduling</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>password</parameter_name>
<parameter_value>password</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>auth_token_url</parameter_name>
<parameter_value>https://<URL>/auth/realms/mu7zd031/protocol/openid-connect/token</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>mediatype</parameter_name>
<parameter_value>application/octet-stream</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>etag</parameter_name>
<parameter_value>*</parameter_value>
</Broadcast_Parameter>
<Broadcast_Parameter>
<broadcast_id>SWB</broadcast_id>
<parameter_name>compression</parameter_name>
<parameter_value>gzip</parameter_value>
</Broadcast_Parameter>
<Input_Reference>
<datetime>2023-07-26T11:25:32+00:00</datetime>
<id>36396</id>
<input_type>LOAD</input_type>
<organisation_id>55</organisation_id>
<dataset_id>20</dataset_id>
<schedule_data>CONTINUOUS</schedule_data>
<load_status>-1</load_status>
<duration>P5D</duration>
<appointment_window_duration>P14D</appointment_window_duration>
<process_type>REACTIVE</process_type>
<enacting_app_type_id>SIM</enacting_app_type_id>
<enacting_app_instance_id>.....</enacting_app_instance_id>
<row_count>1469</row_count>
<object_deletion_count>0</object_deletion_count>
</Input_Reference>
<Source_Data>
<source_data_type_id>RAM</source_data_type_id>
<sequence>1</sequence>
</Source_Data>
<Source_Data_Parameter>
<source_data_type_id>RAM</source_data_type_id>
<sequence>1</sequence>
<parameter_name>rota_id</parameter_name>
<parameter_value>MASTER</parameter_value>
</Source_Data_Parameter>
</dsScheduleData>

For more details please refer to the Schema Guide that is part of the PSO documentation.

Badge +4

Thank you Alexander, that helped a lot.

 

 just looking at the Broadcast id defined as 20 ,

 

<Broadcast> <id>20</id> <active>true</active> <broadcast_type_id>REST</broadcast_type_id> <description>Ventechi Netherlands</description> <plan_type>CHANGE</plan_type> <minimum_plan_quality>85</minimum_plan_quality> <minimum_step_interval>1</minimum_step_interval> <once_only>false</once_only> <maximum_wait>PT1M</maximum_wait> <maximum_frequency>PT1M</maximum_frequency> <allocation_type>1</allocation_type> </Broadcast>

 

how did you choosen that value as “20” ?  is that any unique number to load the broadcast data and its parameters ??  I am trying to identify that number in SWB (after loading the above broadcast data)  , but couldn’t find anywhere.  any idea how to find that broadcast id in SWB?

 

 

Userlevel 6
Badge +18

IFS Cloud just uses the ID of the scheduling dataset (which happens to be 20), but you can use any ID as long as the same is referenced in <Broadcast_Parameter>

Reply