Question

FSM - Task type isn't sync in mobility

  • 23 February 2022
  • 5 replies
  • 286 views

Userlevel 1
Badge +5

Hi everyone, 

 

For an unknown reason, the task type is no longer synchronized on mobility while the task extraction rule requires the extraction of all columns. 


The type is indeed present in the database, in back-office but it’s no longer sent to mobility. Moreover, when the task in completed on mobility and it’s synchronized with the back-office, the task type doesn’t systematically disappear.

Do you have any idea of the root cause ? 

Best regards,
Gauthier


This topic has been closed for comments

5 replies

Userlevel 7
Badge +24

Hi @GAUTHIERM,

What are the details of the setup for the TASK sync rule? If this is not set to sent the task type then it will not send.

Kind regards,

Lee Pinchbeck

Userlevel 1
Badge +5

Hi @Lee Pinchbeck , 

For TASK sync rule : 

Ownership query

<hierarchy_select>
<primary_table>task_assignment_view</primary_table>
<from>
<table>task_assignment_view</table>
</from>
<attrs>
<attr>task_assignment_view.person_id</attr>
</attrs>
<where>
<data_constraint>
<constraint>
<left_operand>task_assignment_view.task_id</left_operand>
<operator>eq</operator>
<right_operand>{task_id}</right_operand>
</constraint>
</data_constraint>
</where>
</hierarchy_select>

Initial query

<hierarchy_select return_only_requested_attrs="true" max_rows="50000">
<primary_table>TASK</primary_table>
<from>
<table>TASK</table>
<table>PLACE</table>
<table>PLACE_ADDRESS</table>
<table>ADDRESS</table>
<table>CONTACT</table>
<table>REQUEST</table>
<table>REQUEST_CONTACT</table>
<table>REQUEST_TEXT</table>
<table>REQUEST_UNIT</table>
<table>RECEIVING</table>
<table>RECEIVING_UNIT</table>
<table>PRODUCT</table>
<table>MODEL</table>
<table>PART_NEED</table>
<table>SHIPMENT</table>
<table>TIME_CLOCK_EVENT</table>
<table>ESCALATION</table>
<table>CONTRACT</table>
<table>CONTR_TYPE</table>
<table>TASK_ATTACHMENT</table>
<table>ATTACHMENT</table>
<table>WARRANTY_COVERAGE</table>
<table>TIME_COMMIT</table>
<table>QUALITY</table>
<table>TASK_ASSIGNMENT_VIEW</table>
<table>TASK_STEPS</table>
<table>TASK_STEPS_ATTACHMENT</table>
<table>ATTACHMENT_ALIAS</table>
<table>TASK_UNIT</table>
<table>DFS_ALL_TASK_TECHNICAL_DATA_VIEW</table>
<table>DFS_ALL_TASK_ADDITIONAL_MOBILE_DETAILS_VIEW</table>
</from>
<attrs>
<attr>TASK.*</attr>
<attr>PLACE.*</attr>
<attr>PLACE_ADDRESS.*</attr>
<attr>ADDRESS.*</attr>
<attr>CONTACT.*</attr>
<attr>REQUEST.*</attr>
<attr>REQUEST_TEXT.*</attr>
<attr>REQUEST_CONTACT.*</attr>
<attr>REQUEST_UNIT.*</attr>
<attr>RECEIVING.*</attr>
<attr>RECEIVING_UNIT.*</attr>
<attr>PRODUCT.*</attr>
<attr>MODEL.*</attr>
<attr>PART_NEED.*</attr>
<attr>SHIPMENT.*</attr>
<attr>TIME_CLOCK_EVENT.*</attr>
<attr>ESCALATION.*</attr>
<attr>CONTRACT.*</attr>
<attr>CONTR_TYPE.*</attr>
<attr>TASK_ATTACHMENT.*</attr>
<attr>ATTACHMENT.*</attr>
<attr>WARRANTY_COVERAGE.*</attr>
<attr>TIME_COMMIT.*</attr>
<attr>QUALITY.*</attr>
<attr>TASK_STEPS.*</attr>
<attr>TASK_STEPS_ATTACHMENT.*</attr>
<attr>ATTACHMENT_ALIAS.*</attr>
<attr>TASK_UNIT.*</attr>
<attr>DFS_ALL_TASK_TECHNICAL_DATA_VIEW.*</attr>
<attr>DFS_ALL_TASK_ADDITIONAL_MOBILE_DETAILS_VIEW.*</attr>
</attrs>
<where>
<data_constraint>
<constraint>
<left_operand>task_assignment_view.person_id</left_operand>
<operator>eq</operator>
<right_operand>{PERSON_ID}</right_operand>
</constraint>
<and />
<constraint>
<left_operand>task.status</left_operand>
<operator>eq</operator>
<right_operand>OP</right_operand>
</constraint>
<and />
<parens>
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>BREAK</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>ASSIGNED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>BREAK_TRAVEL</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>SCHEDULED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>COMMITTED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>ACCEPTED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>INCOMPLETED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>ENROUTE</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>ARRIVED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>IN PROCESS</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>RECEIVED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS SENT</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS RECEIVED</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS ON THE WAY</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS ON TIME</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS LATE</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS TECH ON SITE</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS TECH CLOSURE</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS CHECKLIST CHECK</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS WORK DONE</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS TECH FREE</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS FAILURE TRANSFER</right_operand>
</constraint>
<or />
<constraint>
<left_operand>task.task_status</left_operand>
<operator>eq</operator>
<right_operand>DFS KIH TRANSFER</right_operand>
</constraint>
</parens>
<and />
<constraint>
<left_operand>receiving.inventory_adjusted</left_operand>
<operator>eq</operator>
<right_operand>N</right_operand>
</constraint>
<and />
<constraint>
<left_operand>TIME_CLOCK_EVENT.PERSON_ID</left_operand>
<operator>eq</operator>
<right_operand>{PERSON_ID}</right_operand>
</constraint>
</data_constraint>
<join_constraint>
<constraint>
<left_operand>TASK.REQUEST_ID</left_operand>
<operator>eq</operator>
<right_operand>REQUEST.REQUEST_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.PLACE_ID_CUST</left_operand>
<operator>left_outer</operator>
<right_operand>PLACE.PLACE_ID</right_operand>
</constraint>
<constraint>
<left_operand>PLACE.PLACE_ID</left_operand>
<operator>left_outer</operator>
<right_operand>PLACE_ADDRESS.PLACE_ID</right_operand>
</constraint>
<constraint>
<left_operand>PLACE_ADDRESS.ADDRESS_ID</left_operand>
<operator>left_outer</operator>
<right_operand>ADDRESS.ADDRESS_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.CONTACT_SEQUENCE</left_operand>
<operator>left_outer</operator>
<right_operand>CONTACT.CONTACT_SEQUENCE</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST.REQUEST_ID</left_operand>
<operator>left_outer</operator>
<right_operand>REQUEST_CONTACT.REQUEST_ID</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST.REQUEST_ID</left_operand>
<operator>left_outer</operator>
<right_operand>REQUEST_UNIT.REQUEST_ID</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST.REQUEST_ID</left_operand>
<operator>left_outer</operator>
<right_operand>PART_NEED.REQUEST_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.PRODUCT_ID</left_operand>
<operator>left_outer</operator>
<right_operand>PRODUCT.PRODUCT_ID</right_operand>
</constraint>
<constraint>
<left_operand>PRODUCT.MODEL_ID</left_operand>
<operator>left_outer</operator>
<right_operand>MODEL.MODEL_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.REQUEST_ID</left_operand>
<operator>left_outer</operator>
<right_operand>SHIPMENT.REQUEST_ID</right_operand>
</constraint>
<constraint>
<left_operand>SHIPMENT.SHIPMENT_ID</left_operand>
<operator>left_outer</operator>
<right_operand>RECEIVING.SHIPMENT_ID</right_operand>
</constraint>
<constraint>
<left_operand>RECEIVING.RECEIVING_ID</left_operand>
<operator>left_outer</operator>
<right_operand>RECEIVING_UNIT.RECEIVING_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>TIME_CLOCK_EVENT.FOREIGN_KEY_NUM1</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>ESCALATION.FOREIGN_KEY_NUM1</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST_UNIT.CONTRACT_ID</left_operand>
<operator>left_outer</operator>
<right_operand>CONTRACT.CONTRACT_ID</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST_UNIT.REQUEST_UNIT_ID</left_operand>
<operator>left_outer</operator>
<right_operand>QUALITY.REQUEST_UNIT_ID</right_operand>
</constraint>
<constraint>
<left_operand>CONTRACT.CONTR_TYPE</left_operand>
<operator>left_outer</operator>
<right_operand>CONTR_TYPE.CONTR_TYPE</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST_UNIT.WTY_COV_ID</left_operand>
<operator>left_outer</operator>
<right_operand>WARRANTY_COVERAGE.WTY_COV_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>TIME_COMMIT.TASK_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>TASK_ATTACHMENT.TASK_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK_ATTACHMENT.ATTACHMENT_ID</left_operand>
<operator>left_outer</operator>
<right_operand>ATTACHMENT.ATTACHMENT_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>equi</operator>
<right_operand>TASK_ASSIGNMENT_VIEW.TASK_ID</right_operand>
</constraint>
<constraint>
<left_operand>REQUEST.REQUEST_ID</left_operand>
<operator>left_outer</operator>
<right_operand>REQUEST_TEXT.REQUEST_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>TASK_STEPS.TASK_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK_STEPS.TASK_STEP_ID</left_operand>
<operator>left_outer</operator>
<right_operand>TASK_STEPS_ATTACHMENT.TASK_STEP_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK_STEPS_ATTACHMENT.ATTACHMENT_ID</left_operand>
<operator>left_outer</operator>
<right_operand>ATTACHMENT_ALIAS.ATTACHMENT_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>TASK_UNIT.TASK_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>DFS_ALL_TASK_TECHNICAL_DATA_VIEW.TASK_ID</right_operand>
</constraint>
<constraint>
<left_operand>TASK.TASK_ID</left_operand>
<operator>left_outer</operator>
<right_operand>DFS_ALL_TASK_ADDITIONAL_MOBILE_DETAILS_VIEW.TASK_ID</right_operand>
</constraint>
</join_constraint>
</where>
</hierarchy_select>

Related query : same query as “Initial query”

 

The TASK sync rule is setup as the same way in all environnement (DEV->MIG->TRN->TST->PREP->PRD) but it’s not working only on PRD environment.

 

DEV, MIG, TRN, TST, PREP is on FSM6U13 and PRD is on FSM6U10. But we never encountered this issue on pre-prodcution environment when we were in FSM6U10...

 


If I understand what you explain, we need to add the custom TASK_TYPE too the initial query ?

 

Thanks for you help,

Best regards

 

Userlevel 5
Badge +15

Hi @GAUTHIERM , can you describe a bit more about what you mean by “the task type is no longer synchronized?”

Are you saying the value of task_type is not contained in the mm_message_out record when a task is updated on the back end?

Are you saying that the value of task_type is not populated in the task record in the mobile database?

Are you saying that the task_type value is not visible on a screen in Mobile?

Or do you mean something else?

One thing to verify is that the the global_code_table is populated in the mobile database.  From the Query screen in mobile you can Quick Search with: select code_value from global_code_table where code_name = 'TASK_TYPE'.

Badge +3

Hi @GAUTHIERM , 

Hopefully you are fine ! 

You can check in the device database via the query menu if it is a sync issue or a “display issue”. 
To do so you need to open the query menu, from there you can query the local device database via the quick search field. You need to run an sqlite query. you might need to activate it (set the value to Y) in the app param (ENABLE_QUERY_SCREEN)

I do not really understand if a task with a certain task type is  not displayed in your mobile anymore or if you miss a certain task_type in your mobile.

If you do not see the record in the local dtaabase then you are sure that it is a sync issue. Otherwise it might be a filter issue on the joblist or whatsoever 

Let me know ! 
 

Userlevel 1
Badge +5

Hi @Clement , 

 

Nice to see you again ;) 

 

Currently, the task_type aren't displayed in our tasks on mobility and the task_status_flow aren't consider.

 

We thought that the task_type wasn't synchronized on mobility, but it appears that that is not the right reason.

In fact, the task_type is populated in the task record in the mobile database BUT we tried the query of @brian.gummin, and the global_code_table table isn't entirely populated. Some task_type are missing on the mobility database. We have the same issue with task_status_flow.

 

We forced the global_code_table and the task_status_flow sync rules with the button "sync now" on smart client. The two tables are now populated and our issue is resolved.

Is it the usual behavior ? Or do we have an issue with the synchronisation ?

 

The two sync rules are performed every day and the execution is confirmed on MM_PROCESS_DEF.LAST_RUN_DTTM.

The delivery method are "Batch - All" for the GLOBAL_CODE_TABLE sync rule and "Batch - Delta" for the TASK_STATUS_FLOW one.

 

Best regards,