โ12-07-2018 07:01 AM
I have an IDOC listener that will receive json files of different formats. The root of the json file will be different for the different types. I need to evaluate the root value(PEXR2002 in this example) and then route it based on the value to other child pipelines. I cannot figure out how to get the value out. Anyone know?
{
โPEXR2002โ: {
โIDOCโ: {
โ@BEGINโ: โ1โ,
โEDI_DC40โ: {
โ@SEGMENTโ: โ1โ,
โTABNAMโ: โEDI_DC40โ,
โMANDTโ: โ100โ,
โDOCNUMโ: โ0000000002472008โ,
โDOCRELโ: โ731โ,
โSTATUSโ: โ30โ,
โDIRECTโ: โ1โ,
โOUTMODโ: โ2โ,
โIDOCTYPโ: โPEXR2002โ,
โMESTYPโ: โPAYEXTโ,
โSTDMESโ: โPAYEXTโ,
โSNDPORโ: โSAPS41โ,
โSNDPRTโ: โLSโ,
โSNDPRNโ: โS41CLNT100โ,
โRCVPORโ: โSNAPLOGICโ,
โRCVPRTโ: โLSโ,
โRCVPRNโ: โSNAPLOGICโ,
โCREDATโ: โ20181205โ,
โCRETIMโ: โ220141โ,
โSERIALโ: โ20180917101221โ
},
โE1IDKU1โ: {
โ@SEGMENTโ: โ1โ,
โBGMTYPโ: โPEXโ,
โBGMNAMEโ: โEXTENDED PAYMENT ORDERโ,
โBGMREFโ: โ2000000796โ,
โBGMLEVโ: โORGโ,
โBGMACCโ: โ001โ
},
โE1EDK03โ: [
{
โ@SEGMENTโ: โ1โ,
โIDDATโ: โ011โ,
โDATUMโ: โ20180917โ,
โUZEITโ: โ101221โ
},
{
โ@SEGMENTโ: โ1โ,
โIDDATโ: โ028โ,
โDATUMโ: โ20180917โ
},
{
โ@SEGMENTโ: โ1โ,
โIDDATโ: โ017โ,
โDATUMโ: โ20180918โ
}
],
โE1EDK02โ: {
โ@SEGMENTโ: โ1โ,
โQUALFโ: โ029โ,
โBELNRโ: โ2000000796โ
},
โE1IDKU2โ: {
โ@SEGMENTโ: โ1โ,
โBUSFUNโ: โ001โ,
โBUSGEOโ: โDOโ,
โBUSZFOโ: โ001โ
},
โE1IDKU3โ: {
โ@SEGMENTโ: โ1โ,
โPAIRZAWEโ: โTโ,
โPAYRUNCCโ: โ0001โ,
โPAYRUNIDโ: โCOMM3โ,
โPAYRUNDTโ: โ20180917โ,
โRELNUMโ: โ000000050005โ
},
โE1IDKU5โ: {
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ002โ,
โMOABETRโ: โ9000.00โ,
โCUXWAERZโ: โUSDโ
},
โE1IDB02โ: [
{
โ@SEGMENTโ: โ1โ,
โFIIQUALIโ: โBAโ,
โFIIBKENNโ: โXXXXXXXXXXXXXXXโ,
โFIIBKCDEโ: โ002โ,
โFIIBKUKNโ: โ021000021โ,
โFIIBKUCDโ: โ003โ,
โFIIBKNAMโ: โXXXXXXXXXXXXXXXโ,
โFIIBKORTโ: โTAMPAโ,
โFIIBLANDโ: โUSโ,
โFIIKONTOโ: โXXXXXXXXXXXXXXXโ,
โFIIKWAERโ: โUSDโ
},
{
โ@SEGMENTโ: โ1โ,
โFIIQUALIโ: โBBโ,
โFIIBKENNโ: โXXXXXXXXXXXXXXXXXโ,
โFIIBKCDEโ: โ003โ,
โFIIBKNAMโ: โXXXXXXXXXXXXXXXXXXxโ,
โFIIBKORTโ: โCHICAGOโ,
โFIIBLANDโ: โUSโ,
โFIIKONTOโ: โXXXXXXXXXXXXXXโ,
โFIIKNAMEโ: โXXXXXXXXXXXXXXXXXXโ,
โFIIBKONTโ: โ01โ
}
],
โE1EDKA1โ: [
{
โ@SEGMENTโ: โ1โ,
โPARVWโ: โAGโ,
โNAME1โ: โXXXXXXXXXXXXXXโ,
โSTRASโ: โXXXXXXXXXXXXXXXXโ,
โPFACHโ: โ2020โ,
โORT01โ: โXXXXXXXXXXXXXโ,
โPSTLZโ: โ72762โ,
โPSTL2โ: โ72765โ,
โLAND1โ: โUSโ,
โTELF1โ: โ(479)290-4000โ,
โSPRASโ: โEโ,
โORT02โ: โWASHINGTONโ,
โREGIOโ: โARโ,
โISOALโ: โUSโ
},
{
โ@SEGMENTโ: โ1โ,
โPARVWโ: โBEโ,
โPARTNโ: โ0000001018โ,
โNAME1โ: โXXXXXXXXXXXXXXXxโ,
โNAME2โ: โTEST NAME UPDATEโ,
โNAME3โ: โTEST TEST TESTโ,
โNAME4โ: โTESTโ,
โSTRASโ: โONE APPLIED PLZโ,
โPFACHโ: โXXXXXXXXXXโ,
โORT01โ: โCLEVELANDโ,
โPSTLZโ: โXXXXXXXXXXXโ,
โPSTL2โ: โXXXXXXXXXโ,
โLAND1โ: โUSโ,
โTELF1โ: โXXXXXXXXXXโ,
โTELFXโ: โXXXXXXXXXXXโ,
โORT02โ: โCUYAHOGAโ,
โREGIOโ: โOHโ,
โISOALโ: โUSโ,
โPFORTโ: โPASADENAโ,
โSPRAS_ISOโ: โENโ
}
],
โE1IDPU1โ: {
โ@SEGMENTโ: โ1โ,
โDOCNAMEโ: โINVโ,
โDOCNUMMRโ: โ5000005346โ,
โDOCDATUMโ: โ20180917โ,
โE1IDPU5โ: [
{
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ004โ,
โMOABETRโ: โ9000.00โ,
โCUXWAERZโ: โUSDโ
},
{
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ003โ,
โMOABETRโ: โ0.00โ,
โCUXWAERZโ: โUSDโ
},
{
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ005โ,
โMOABETRโ: โ0.00โ,
โCUXWAERZโ: โUSDโ
},
{
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ006โ,
โMOABETRโ: โ9000.00โ,
โCUXWAERZโ: โUSDโ
}
],
โE1EDP03โ: [
{
โ@SEGMENTโ: โ1โ,
โIDDATโ: โ016โ,
โDATUMโ: โ20180917โ
},
{
โ@SEGMENTโ: โ1โ,
โIDDATโ: โ015โ,
โDATUMโ: โ20180917โ
}
],
โE1EDP02โ: [
{
โ@SEGMENTโ: โ1โ,
โQUALFโ: โ009โ,
โBELNRโ: โ5000005346โ
},
{
โ@SEGMENTโ: โ1โ,
โQUALFโ: โ010โ,
โBELNRโ: โ5200000898โ
}
]
},
โE1IDLU5โ: [
{
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ002โ,
โMOABETRโ: โ9000.00โ,
โCUXWAERZโ: โUSDโ
},
{
โ@SEGMENTโ: โ1โ,
โMOAQUALโ: โ003โ,
โMOABETRโ: โ0.00โ,
โCUXWAERZโ: โUSDโ
}
]
}
}
}
Solved! Go to Solution.
โ12-07-2018 02:55 PM
โ12-07-2018 09:59 AM
Iโm not quite clear on what youโre asking, so Iโll take a guessโฆ Do you have a Router snap after the listener with branches for each child pipeline? The condition for the branches would need to check for the given property. One way to do that is with the hasOwnProperty()
method, like so:
$.hasOwnProperty('PEXR2002')
You can then get the value in a Mapper with $PEXR2002
and pass the doc into the child pipeline.
โ12-07-2018 11:06 AM
I want to parse the value into itโs own field. At this point in the process I donโt want to do the evaluation now. I want a downstream process to do that. When I test this at http://jsonpath.com/?
the command $.*~ gives be back what Iโm asking for. However, it does not in any of the snaplogic snaps.
โ12-07-2018 11:20 AM
Iโm sorry, Iโm still not understanding what youโre asking for. Can you attach an export of the pipeline youโre working on or provide some screenshots of the pipeline and the snap configurations.
โ12-07-2018 02:16 PM
If Iโm reading this right, it sounds like the name of your root element of your json document stream can change, but you always want to grab the root element to be able to process later? If so, I think something like this could work?