Sub-assemblies are not invoking in loop execution

hello,

I’ve been working on Raiser two way sync trigger assembly and it has a sub-assembly for loop execution. Everything thing is working on the assembly but not in the automation. When I checked to debug logs the records are proper but incomplete data like only addresses are coming and all the basic information like name, gender, dob, created/modified time, etc not. These all the information supposed to emit by the help of sub-assembly in the loop module. Now all the fields are missing including “two-way sync unique identifier” and caused me automation execution again and again with the same records.

Automation link: https://dev.apiant.com/automation-editor?view_history_item=7062325&view_history_item_tenant_uuid=&view_history_item_person_uuid=39309b8f8cc4430a8d24ecb7a7d4378e
Trigger assembly: 3e00133caf13484888fbecf667dd1b85
subassembly: 5bc455e17f4d439f83de90f997b417d6

Let me know if you require more information.

Thanks

If there is a system issue, you need to boil down the problem into a specific test case that reproduces the issue for me to fix.

You can run the assembly editor in debug mode and compare debug output from the editor vs. the automation to find any differences in processing.

yes, sure I’ll do that but I was wondering since assembly is working fine only issue with automation so the comparison would be helpful? Anyway I’ll follow the comparison process and let you know if I get anything unusual.

Thanks

Yes, the debug logging in the assembly editor should be equivalent to the debug logging in the automation if the same test data is being used.

Understood! I’ll compare both the logs and let you. Thanks

I’m not able to run that assembly in debug mode. It’s throwing few errors while executing in debug mode but without debug mode, it’s working fine. Sometimes it takes too much time to execute and after the browser gets crash. The error I’m getting while debugging on:


Then debug mode is using more memory and CPU than your machine has.

Your options are:

  1. Reduce the amount of data your assembly is processing

  2. Turn off debug options:

  1. Use a machine with more memory and CPU

yes, that’s the issue. I’ve checked system’s memory and CPU usages while running assembly in debugging mode and it’s consuming full memory. I’ll reduce the amount of data as you mentioned.

Thanks for your help.

According to the automation error logs, sub-assemblies are working fine in loop execution. The issue I’ve identified is in the ‘Data Stream - Union’ module. It’s truncating the data and because of that I’m missing record’s basic information including id, added_date, modified_date and caused no two-way identifier gets generate and execute the same records in automation again and again.

‘Data Stream - Union’ module only allowing two nodes from the top and the rest of them will be truncated, Like:
01-15-57-00
Now it keeps only the first two nodes and the rest of the data won’t be available for further execution and output will be:
01-15-59-13
This is happening only in automation, not assembly editor.

The output of the Data Stream - Union module is different in assembly editor than automation logs as I’ve mentioned above. Could you just verify from your side or let me know if you need more details.

I need a standalone test case that doesn’t fetch API data that I can install and run on my dev system.

You can use the Data Streams - Create from Text module to insert your test XML data.

Your test case can be tested without an automation by running it on the server:

Here I’ve created two standalone assemblies and run as you asked. I’m seeing the same issue of truncating data (in debug logs not in the assembly) by Union module in the subassembly.

  1. Standalone two-way sync new or updated constituent: d447d3f333b649d18cdb17135be1cd1f
  2. Standalone get constituent contact: b4df773198d64c2e87c63124e997f056

Let me know if I missed anything or require any more details from my side.

You need to point me to the problem. Which module? What is the expected output?

Sorry about that I was thinking the same.

  1. In debug log look for: “Module [Data Streams - Union #17] ========== Output Data Stream #5 Begin ==========”
  2. In assembly b4df773198d64c2e87c63124e997f056 (Standalone get constituent contact) look for “Data Streams - Union #17

Point one: output we’re getting:


Output we’re expecting:

Point two in assembly editor output as expected:

Looks to me the problem is not the Union but the Join module #15.

Can you confirm that it is Join #15 that doesn’t have the same output for you in the editor vs. server?

Apologize! I missed that. Yes, you are correct about the problem in “Join module #15”. Did I map anything wrong in it or should I think another way to merge the XML streams or something from your side?

And sorry for the late reply but this time I didn’t get any notification for this post by mail.

The problem is a bug in the Join module. I am trying to fix, but the issue is hard.

The quickest workaround is for you to do the join logic via your own Java code.

Understood! and thanks for all your helps.

I have finally tracked down the problem and installed a patch in dev.apiant that should fix.

Let me know if the Join module now works correctly for your assembly in dev.apiant.

Thank you so much. I’ll test it and confirm you.