cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Issue with Arrays in Downstream Mappers after a Custom Snap Transformation

cclaudio
New Contributor II

We built a custom snap that performs a transformation. You will notice in the output of the custom snap in the screenshot below that โ€œmedicalEnrollmentโ€ is a json array.

image

In a downstream mapper, we attempted a transformation on this array. We have tried (1) using the sl.ensureArray() method and (2) another downstream mapper performing a transformation in the array. However, we notice that in both the #1 and #2 attempts the mappers do not detect the array, thus causing issues with the transformation.

Below is a snippet of the preview of what we expect vs actual preview.

image

We also notice that chaining a Json Formatter and a Json Parser right after the custom snap does indeed makes the mappers work correctly. Pattern shown below:

image

So my question is, is there something hidden in the JSON parser snap that allows strong typing of the array that we are missing? Anything in between?

@robin , Tagging you since I was told you might be able to help out. Thanks!

1 ACCEPTED SOLUTION

Thanks. I installed the binary snap pack and set a breakpoint in the Mapper to see the Java types used in the input, which is the output of your snap. I can see that medicalEnrollment is still a HashSet, not an ArrayList:

Screen Shot 2021-09-09 at 4.43.41 PM

I havenโ€™t studied your source code but I can see that youโ€™re still using HashSet in a lot of places. Donโ€™t use that type anywhere in your Document data. Itโ€™s not compatible with any of the JSON types. Use ArrayList everywhere you need an array.

View solution in original post

20 REPLIES 20

Iโ€™ve looked at the ticket and can see thereโ€™s a pipeline link. Can you please provide me with the permission to execute that pipeline? My username is ptaylor@snaplogic.com.

I see two different versions of the same custom snap pack in your /shared directory. They both appear to implement the same set of three snaps, including โ€œExcel Structureโ€. One of them was updated today, but the other was last updated two days ago. Iโ€™m wondering if the pipeline youโ€™re testing might be using the older one rather than the one you just updated to output an ArrayList. I suggest removing the older one to ensure itโ€™s no longer being used if thatโ€™s your intention.

cclaudio
New Contributor II

@ptaylor , I have granted you access to the org and created a copy for you. Our newest snap is com-snapit-excelstructure_1-0001 and thatโ€™s the one thatโ€™s being used at the moment.

Thanks, but where can I find the copy I can access?

cclaudio
New Contributor II

@ptaylor Our organization is MercerDigitalDev. The pipeline is located in Workbook v3 - Projects/0000 - Snaplogic Testing. Either of the pipelines in that folder would work.