webMethods

webMethods

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

Mapping single element list to list

  • 1.  Mapping single element list to list

    Posted Thu April 25, 2024 04:13 AM

    I am trying to map a stringList1 to another stringList2 and then trying to check the size of the string list after that.
    Unfortunately when, there is only one value in the input stringList1, then the mapped stringList2 is also converting to a string
    Hence when i check the size of this stringList2 or invoke Makestrings service it is throwing the error as below

    =============================================
    class java.lang.String cannot be cast to class [Ljava.lang.String; (java.lang.String and [Ljava.lang.String; are in module java.base of loader ‘bootstrap’)
    java.lang.ClassCastException
    java.lang.ClassCastException: class java.lang.String cannot be cast to class [Ljava.lang.String; (java.lang.String and [Ljava.lang.String; are in module java.base of loader ‘bootstrap’)
    at pub.list.appendToStringList(list.java:471)
    at jdk.internal.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:404)
    at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:759)
    at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
    at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:53)
    at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
    at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
    at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
    at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
    at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
    at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:401)
    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:629)
    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:434)
    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:392)
    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
    at com.wm.app.b2b.server.BaseService.invoke(BaseService.java:231)
    at com.wm.lang.flow.FlowInvoke.invoke(FlowInvoke.java:263)
    at com.wm.lang.flow.FlowMapInvoke.invokeService(FlowMapInvoke.java:189)
    at com.wm.lang.flow.FlowMap.invoke(FlowMap.java:301)
    at com.wm.lang.flow.FlowMap.invoke(FlowMap.java:166)
    at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:662)
    at com.wm.lang.flow.FlowState.stepIncremental(FlowState.java:576)
    at com.wm.lang.flow.FlowState.invoke(FlowState.java:464)
    at wm.server.flowdebugger.singleStepMap(flowdebugger.java:1292)
    at wm.server.flowdebugger.execute(flowdebugger.java:508)
    at jdk.internal.reflect.GeneratedMethodAccessor455.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:414)
    at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:759)
    at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
    at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:53)
    at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
    at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
    at com.wm.app.b2b.server.invoke.PipelineProcessor.process(PipelineProcessor.java:171)
    at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:339)
    at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:33)
    at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:401)
    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:629)
    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:434)
    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:392)
    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:260)
    at com.wm.app.b2b.server.comm.DefaultServerRequestHandler.handleMessage(DefaultServerRequestHandler.java:119)
    at com.wm.app.b2b.server.HTTPMessageHandler.process(HTTPMessageHandler.java:160)
    at com.wm.app.b2b.server.HTTPDispatch.handleRequest(HTTPDispatch.java:203)
    at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:391)
    at com.wm.util.pool.PooledThread.run(PooledThread.java:127)
    at java.base/java.lang.Thread.run(Thread.java:829)

    But works fine when multiple strings in stringList1

    can someone please help how i can make sure that the string list doesnt convert to string even when the input is a string


    #webMethods-cloud
    #webMethods-io-Integration
    #webMethods-io-B2B
    #webMethods
    #B2B-Integration
    #Integration-Server-and-ESB


  • 2.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 07:10 AM

    Can you provide an example? Ideally with pseudo-code or detailed screenshots


    #B2B-Integration
    #Integration-Server-and-ESB
    #webMethods-cloud
    #webMethods
    #webMethods-io-B2B
    #webMethods-io-Integration


  • 3.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 07:50 AM

    @ jahntech.cj


    and when debugging, observed that the partnerSystemId is coming as a string
    image
    and with the above mapping, the stringlist is also converting to string
    image


    #webMethods-io-Integration
    #webMethods-cloud
    #B2B-Integration
    #webMethods
    #Integration-Server-and-ESB
    #webMethods-io-B2B


  • 4.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 07:52 AM

    Thanks. But I am a bit confused now. The screenshot shows only a single string to me. How is a string list coming into the picture?


    #B2B-Integration
    #webMethods-io-B2B
    #Integration-Server-and-ESB
    #webMethods-io-Integration
    #webMethods
    #webMethods-cloud


  • 5.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 08:04 AM

    As there is only one value in PartnerSystemId(stringList) it is taking up as a string by IS.
    run time value is coming as below
    image
    and after mapping the run time value of distributionList/PartnerSystemId is also converting to a string
    image

    which is then throwing the error when performing list operations.


    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #B2B-Integration
    #webMethods-cloud
    #webMethods
    #webMethods-io-B2B


  • 6.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 08:08 AM

    Where is “partnerSystemId” defined as a string list? All I can see are strings, indicated by the string icon.

    Only because the field has a name that implies a list, does not mean that is technically a list. Lists have a different icon, so perhaps there is a misunderstanding here.


    #webMethods-cloud
    #webMethods
    #B2B-Integration
    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #webMethods-io-B2B


  • 7.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 08:11 AM

    I am totally aware of defining string or a string list and here both the input an output are defined as string lists as you can see in the below pipeline


    but during run time as there is only one value in the input stringList, IS is considering it as a string.

    The strings you are seeing are from the debug log variables


    #B2B-Integration
    #webMethods-io-B2B
    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #webMethods
    #webMethods-cloud


  • 8.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 08:29 AM

    Thanks, I hadn’t magnified the screenshot and therefore seen the icon as a single string.

    The real question here is how the source string list gets created as a single string. If there is REALLY no way to fix this issue upstream, where the root cause lies, you can also employ a Java service to “convert” the string to a string list with one element.


    #B2B-Integration
    #webMethods
    #Integration-Server-and-ESB
    #webMethods-cloud
    #webMethods-io-B2B
    #webMethods-io-Integration


  • 9.  RE: Mapping single element list to list

    Posted Thu April 25, 2024 09:52 AM

    When you map a single element to an array, Integration Server usually adds it to the list without any problems but this is not the correct way to map a single element to an array. Correct way of mapping a single element to an array is after mapping the item, click the map and then from the pipeline panel, click the button next to delete (X) icon.

    From the popped up window, add the index number, it is usually 0 but you can populate any array one by one so any number is ok.
    Screenshot 2024-04-25 at 7.49.09 AM

    Sometimes it doesn’t look like it is editable but it is as long as flow is locked and the field is an array, just click and add the number. You can do the same for the input. When you map an item like this, you can map multiple elements to a single array (with different indexes).

    It will have a different color when you save it.

    From the screenshot, I realized a little later that you are mapping from a string list to a string list. But you aren’t looping them?? Even if it is a single element you need to loop them or index them if they are coming from a list. You can only map a list to another list, not an element of a list to an element of a list without looping or indexing them! And if you map list to list, the output list will have the same element name as the input! It won’t magically convert the element names to the mapped lists element name!


    #Integration-Server-and-ESB
    #webMethods-cloud
    #webMethods
    #B2B-Integration
    #webMethods-io-B2B
    #webMethods-io-Integration


  • 10.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 10:14 AM

    @reamon The mapping is wrong. You are sending him towards the wrong direction. Enlarge the picture here. You cannot map a list to a list without looping them first. Without the loop it will copy the list object, not the elements; hence it will have the old element names and won’t be found in pipeline.

    @tahaseenshaik999 You can save the pipeline and see what you have there. Even if you have a single element, you need to either loop it, or map it using indexes.


    #webMethods
    #B2B-Integration
    #Integration-Server-and-ESB
    #webMethods-cloud
    #webMethods-io-Integration
    #webMethods-io-B2B


  • 11.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 10:28 AM

    Yes you can. Copy by reference is fine.There is no issue with mapping a list to a list, as long as you understand the 2 vars reference the same underlying list.

    The description of the symptom indicates that the XML was not parsed with a document type or the proper arrays/makeArrays inputs – thus the single string element is a string var in the pipeline, not a list. Then it is mapped (by value) to the target doc – but as a string, not a string list because that’s what the source var type is. Then when the target doc element is passed to the service that expects an array, it fails because it is not an array.

    This is classic behavior that everyone new to IS and XML runs into. Readily addressed by using a doc type and setting the right inputs to xmlNodeToDocument.

    [Edit] @engin_arlak I know you’re not new. And @tahaseenshaik999 may not be new either but the profile was created in 2022 so might be. In any case, the comment is a generalization about this symptom, not about any specific participant here. :slight_smile:

    If my speculation is correct, looping won’t solve the issue either – there will be no list over which to loop because the source var will be a string at runtime.

    Of course, my assessment may be shown to be wrong once the OP shares the steps for the XML being converted to a doc.


    #webMethods-cloud
    #webMethods-io-Integration
    #webMethods-io-B2B
    #Integration-Server-and-ESB
    #webMethods
    #B2B-Integration


  • 12.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 10:29 AM

    I am sorry but you are wrong here. It is perfectly valid to map a string list to a string list without a loop.


    #webMethods-io-B2B
    #webMethods
    #B2B-Integration
    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods-io-Integration


  • 13.  RE: Mapping single element list to list

    Posted Fri April 26, 2024 04:12 PM

    The mapping isnt a problem at all. The issue is that source is not a StringList with one value in it, as it should be. Its actually a string. So the target will also be a string. Make sure the source is created correctly. If you dont have control over it then you can add a map step before the one you have. In that take the partnerSystemId field and map it to a field called partnerSystemIdList. Then use the new one and maps it to your target, That way it will work for both scenarios.


    #B2B-Integration
    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #webMethods-io-B2B
    #webMethods
    #webMethods-cloud


  • 14.  RE: Mapping single element list to list

    Posted Fri April 26, 2024 04:34 PM

    It is not very clear in small thumbnail, but the source and the target are both coming from a string list. OP is trying to map from string list to string list directly without using a loop. If it were a single element string, not a list, IS would add that to the list.


    #Integration-Server-and-ESB
    #B2B-Integration
    #webMethods-cloud
    #webMethods-io-Integration
    #webMethods
    #webMethods-io-B2B


  • 15.  RE: Mapping single element list to list

    Posted Sat April 27, 2024 10:03 AM

    Yes the map is correct. Both source and target are string lists. But in reality the source value is a string in the pipeline. If you have a map at runtime the type check doesnt happen. It just copies it as it is. Since the source is actually a string, it get copied to the target at a string too.


    #webMethods-cloud
    #webMethods
    #Integration-Server-and-ESB
    #webMethods-io-B2B
    #B2B-Integration
    #webMethods-io-Integration


  • 16.  RE: Mapping single element list to list

    Posted Mon April 29, 2024 11:00 AM

    Mapping is not correct. You need to loop it first, then map it. It would be a single element on both sides if it were correct. Check the document below.

    https://documentation.softwareag.com/webmethods/designer/sdf10-15/webhelp/sdf-webhelp/#page/sdf-webhelp%2Fesb.flow.loop.inputArray.html

    Or you can try the other method I mentioned earlier, but if you do it right, it will accept arrays as well, in case you need it in the future.


    #B2B-Integration
    #webMethods-io-Integration
    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods
    #webMethods-io-B2B


  • 17.  RE: Mapping single element list to list

    Posted Mon April 29, 2024 11:40 AM

    How is partnerSystemId being passed to wM IS? Is a query parameter via HTTP? Or something else? The MAP step itself looks okay so it seems this is potentially due to either the caller or if via HTTP due to a setting.

    For HTTP calls, you can control how IS represents a query variable in the pipeline. The watt.server.http.listRequestVars setting controls how query vars are placed into the pipeline.

    Of course, I’m just speculating about what may be the underlying cause. Please share how partnerSystemId is being passed and we’ll be able to provide better guidance.


    #B2B-Integration
    #webMethods
    #webMethods-cloud
    #webMethods-io-B2B
    #webMethods-io-Integration
    #Integration-Server-and-ESB


  • 18.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 01:10 AM

    the value is passed to wm IS in a soap call… in an xml doc… is there any server setting i can modify to control this


    #webMethods-io-B2B
    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #webMethods
    #webMethods-cloud
    #B2B-Integration


  • 19.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 09:54 AM

    Just do the loop once and see if it helps. You are going towards wrong direction.


    #B2B-Integration
    #webMethods-io-B2B
    #webMethods
    #Integration-Server-and-ESB
    #webMethods-cloud
    #webMethods-io-Integration


  • 20.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 10:08 AM

    Can you share the steps that convert the XML string to an IS document? XML syntax is such that one cannot determine if a single element is supposed to be in a list without additional information from elsewhere. Either need to use a document type or set makeArrays/arrays so that xmlNodeToDocument knows which elements should be treated as a list even when only 1 element is present.


    #Integration-Server-and-ESB
    #B2B-Integration
    #webMethods
    #webMethods-io-Integration
    #webMethods-cloud
    #webMethods-io-B2B


  • 21.  RE: Mapping single element list to list

    Posted Tue April 30, 2024 10:34 AM

    I will back @reamon on this. Please see this example. I have mapped a string list to a string list inside a doc on output side. Exactly as the original poster. You will see that output appears correct. So I will again state that the mapping is correct.

    The input

    2024-04-30 10 27 37 (2)

    The output

    2024-04-30 10 27 37 (3)

    Now on the other hand if you drop the inList variable and add a inList string variable. You will see a string in the output. you can see that below. Hope this clarifies the situation


    es.

    @tahaseenshaik999, please sahre how you are getting your input document constructed and we can suggest a way to force it to be a list.


    #webMethods-io-Integration
    #webMethods-io-B2B
    #Integration-Server-and-ESB
    #B2B-Integration
    #webMethods-cloud
    #webMethods


  • 22.  RE: Mapping single element list to list

    Posted Mon May 06, 2024 07:39 AM

    Its a webservice call through SOAP UI, there is no conversion involved here, the input document to the webservice itself is causing the issue.

    As we can see the below snippet of input to the webservice call, when systemId is provided with a singlevalue, IS takes it as a string.

    image

    eventhough the referenced wsdl doc is having systemId as stringlist
    image

    But when the same systemId is sent with multiple Values, it considers it as a stringList and works fine.

    image


    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods-io-Integration
    #webMethods
    #webMethods-io-B2B
    #B2B-Integration


  • 23.  RE: Mapping single element list to list

    Posted Mon May 06, 2024 10:05 AM

    As has been mentioned that is really something that should be corrected upstream.

    A possible workaround could be a Java service like below. It needs an input called input of type Object and an output called output of type String List.

    Whether or not this is a good idea for your situation I cannot say without the full picture about what is going on.

    IDataCursor pipelineCursor = pipeline.getCursor();
    try {
    Object	input = IDataUtil.get( pipelineCursor, "input" );
    String[] output = null;
    
    if (input != null) {
    if (input instanceof String) {
    output = new String[1];
    output[0] = (String)input;
    } else if (input instanceof String[] ){
    output = (String[])input;
    } else {
    throw new ServiceException("Input must be String or String List");
    }
    IDataUtil.put( pipelineCursor, "output", output );
    }
    } finally {
    pipelineCursor.destroy();
    }
    

    #Integration-Server-and-ESB
    #B2B-Integration
    #webMethods
    #webMethods-cloud
    #webMethods-io-B2B
    #webMethods-io-Integration


  • 24.  RE: Mapping single element list to list

    Posted Mon May 06, 2024 10:17 AM

    Yes there is. The XML string from the caller is converted to an IS document (a variable structure) at run-time. Those are variables you see in the pipeline in the screen shots you shared.

    Consider the XML snippets you shared. How is wM IS to know that systemId is should be treated as a list when there is only one value present? It cannot do so. It must have additional information to know that it is treat a single systemId element as though it is the entry of a 1-item list. As noted in an earlier reply, there are a couple of ways to do that.

    If by “upstream” you mean earlier in the IS components that are processing the XML, I agree. The processing of the XML string from the caller needs to use documentTypeName or makeArrays. The XML is perfectly acceptable.

    Java is absolutely unnecessary in this case.

    @tahaseenshaik999 – review the description of pub.xml:xmlNodeToDocument, paying particular attention to the inputs named arrays, makeArrays and documentTypeName.


    #webMethods
    #webMethods-io-Integration
    #B2B-Integration
    #webMethods-io-B2B
    #webMethods-cloud
    #Integration-Server-and-ESB


  • 25.  RE: Mapping single element list to list

    Posted Tue May 07, 2024 04:47 AM

    I agree with that in the sense that it is not the regular way to it.

    Your comment made me think whether or not my suggestion could be considered bad advice, and if so under what circumstances (or even across the board).

    Of course being prejudiced, my current thinking (and I am hereby seeking feedback on that) is the following:

    The downsides with my approach are

    • Separate piece of custom code: although small and trivial it needs to be taken into account for future migrations etc.
    • Performance: additional overhead for separate service invocation, although probably not critical in most cases(?)
    • Documentation: people need to understand what the service does on top of understanding the built-in services

    The pros

    • Solves the issue right now
    • Conceptually the same as specifying the makeArrays input and likely similar on the run-time side
    • Perhaps not relevant here, but allows for finer control then makeArrays which is not location-aware within the overall document structure

    So I overall think that the makeArrays etc. approach is certainly what should be aimed for. On the other hand due to time constraints we make compromises all the time. In that light I would not see my workaround as a big issue.

    To reiterate: I am not trying to be difficult or defensive, but think this is an interesting case to discuss trade-offs.

    Thanks for your feedback.


    #B2B-Integration
    #Integration-Server-and-ESB
    #webMethods
    #webMethods-io-B2B
    #webMethods-io-Integration
    #webMethods-cloud


  • 26.  RE: Mapping single element list to list

    Posted Tue May 07, 2024 10:39 AM

    Not bad advice but perhaps premature. The OP has not shared exactly how the XML is parsed to an IS doc var. The usual thing to do as you note is to set the right inputs to xmlNodeToDocument so that the structure is as expected right away.

    If the OP indicates, which seems unlikely, that there is no control possible to get the string list “right” in the first place, then the Java code would be a way to go (could do it with FLOW too).

    The “solves the issue right now” is true but IMO is short-sighted. As you note, this is not the regular way to do it. As such, the action now is to determine if the regular way can be used, IMO.

    Regarding the makeArrays – yes, that is a weak way to do so. For simple docs is fine. I think I’ve used that maybe once in the past many years. The 2 primary ways I use xmlNodeToDocument is with no inputs other than the node (for simple docs where we know there will be no ambiguity for single elements) or with makeArrays set to false and documentTypeName specified.

    Making structural changes after the doc is instantiated is not a terrible approach but it’s a last resort sort type of thing.

    Not at all! The exchanges are great!

    We might disagree on this one being a good one for evaluating trade-offs though — IMO, the use of a documentTypeName is the way to address this. And if the OP shares the details of what the top-level service is doing we can figure out what adjustment needs to be made to properly parse the XML without any “add-ons”. :slight_smile:


    #B2B-Integration
    #webMethods-io-B2B
    #webMethods-io-Integration
    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods


  • 27.  RE: Mapping single element list to list

    Posted Mon May 06, 2024 10:44 AM

    Please share the components that are being invoked by the caller. There is likely something missing in one of the custom steps or in the provider WSD (if you’re using that).

    I ask because the WSDL used to create the IS components is not referenced at run-time. Other elements define the doc structure.


    #webMethods-io-Integration
    #webMethods-cloud
    #webMethods-io-B2B
    #Integration-Server-and-ESB
    #B2B-Integration
    #webMethods


  • 28.  RE: Mapping single element list to list

    Posted Wed May 08, 2024 01:31 AM

    Its a webservice call and the input to the service is the request reference doc which we send as an SOAP xml from input, so our IS service directly has the doc ref and no conversion (from xml string to IS DOC) is involved here.
    below is the input we send from SOAP UI
    image

    Input to our webservice at IS is the referenced doc

    we can see that the referenced doc, distributionList/systemId is a stringlist.


    #webMethods-io-B2B
    #webMethods
    #webMethods-cloud
    #B2B-Integration
    #webMethods-io-Integration
    #Integration-Server-and-ESB


  • 29.  RE: Mapping single element list to list

    Posted Wed May 08, 2024 09:39 AM

    Can you share the content type that you use to post the SOAP ? And the URL ?


    #webMethods
    #webMethods-io-B2B
    #webMethods-io-Integration
    #B2B-Integration
    #webMethods-cloud
    #Integration-Server-and-ESB


  • 30.  RE: Mapping single element list to list

    Posted Wed May 08, 2024 10:53 AM

    The input and doc type look good. That brings me back to your earlier screen shot – where you show a MAP step that is mapping to distributionList/systemId, not from it.

    Where is partnerSystemId coming from? That’s the part of interest.

    Namespaces can also be a problem. The screen shots don’t show the declaration for the tns namespace prefix in SoapUI nor in the doc type. Can you share those and confirm they are the same?


    #webMethods-cloud
    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #webMethods-io-B2B
    #B2B-Integration
    #webMethods


  • 31.  RE: Mapping single element list to list

    Posted Thu May 09, 2024 06:21 AM

    Sorry Reamon, if that has confused you.
    Actually the variable partnerSystemId is mapped from the Input distributionList/systemId
    Initially i showed the issue at later point of time in the the service after copying the value from input to other serice input - partnerSystemId

    but issue is that the input distributionList/systemId is coming as a string during run time when only one systemId is passed


    #webMethods-io-B2B
    #webMethods-io-Integration
    #Integration-Server-and-ESB
    #webMethods
    #B2B-Integration
    #webMethods-cloud


  • 32.  RE: Mapping single element list to list

    Posted Thu May 09, 2024 07:25 AM

    If the input is showing up incorrectly that can only mean that the input is being converted without the document reference. So please check the namespaces tomake sure they are matching


    #webMethods
    #B2B-Integration
    #Integration-Server-and-ESB
    #webMethods-cloud
    #webMethods-io-Integration
    #webMethods-io-B2B


  • 33.  RE: Mapping single element list to list

    Posted Thu May 09, 2024 10:48 AM

    Can you share the details of that? You showed only the case where partnerSystemId is mapped to distributionList/systemId, not from it.

    Perhaps, but you’ve never showed any evidence of that. Everything you’ve shared so far seems to be later in the processing. There was this screen shot showing a string var under distributionList:

    image

    But in the context of how this thread has gone, that seemed that was the state of the pipeline after the map to distributionList/partnerSystemId and not a screen shot of the top-level entry service.

    Please share the details of the entry service. We see the inputs, which look good. What is the service doing? What the namespace declaration for the tns prefix that is shown in the input?

    For the SoapUI payload, please share the complete envelope including namespace declaration. In the screen shot of SoapUI you masked out the namespace prefix of the receive element – not sure why that was considered sensitive. It does not need to be “tns” but the associated namespace it references in the SoapUI payload does need to match the namespace defined for your receive service input document.

    As @rupinder1 notes, with the information so far, this looks like it may be a namespace mismatch issue – and to be clear, the “tns” shown in the input of the service screen shot is not the namespace. That is a prefix for a namespace. The prefix is an abbreviation for the namesapce.


    #webMethods-cloud
    #B2B-Integration
    #webMethods
    #webMethods-io-B2B
    #webMethods-io-Integration
    #Integration-Server-and-ESB


  • 34.  RE: Mapping single element list to list

    Posted Thu May 09, 2024 01:22 PM

    I seem to remember that this behavior (data coming as string when only one value provided) is a behavior from DSPs. I solved it with a “sanitizing” service that checked if the list was on the pipeline, and if not create it from the single string found.


    #webMethods
    #B2B-Integration
    #webMethods-io-B2B
    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods-io-Integration


  • 35.  RE: Mapping single element list to list

    Posted Thu May 09, 2024 01:34 PM

    DSP activity is going to be attributable to browser and form POST. And the configuration in IS for how to handle repeating URL parameters (when they don’t repeat.).

    It’s a decent thought but the info from the OP at this point does not indicate DSPs or browsers are involved. Something amiss between the HTTP client and the entry service.


    #webMethods-io-Integration
    #B2B-Integration
    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods
    #webMethods-io-B2B


  • 36.  RE: Mapping single element list to list

    Posted Mon May 06, 2024 01:03 PM

    What do you mean by referenced WSDL doc ? Where is it referenced, if not flow steps are being called before this ?


    #webMethods-io-Integration
    #webMethods-cloud
    #Integration-Server-and-ESB
    #webMethods
    #B2B-Integration
    #webMethods-io-B2B