Use sustring of FileName in Condition editor

Hi All,
I want to give some condition based on the substring of a file Name.
Example, in the file name is "header1234.txt" the characters from 7 to 10 represent a company code and the corresponding receiver should be determined based on this string.
I can use the complete file name when I select Context object in the editor and choose the object as File Name, but am unable to get a substring of that. I have a Xpath expression underneath the Context object, but it is disabled.
Any pointers are welcome.
Thanks
Jaishankar
P.S: I tired to put substring(Interface.FileName,7,4) in the Xpath manually, but the expression goes away just like that when i close the editor and open it again.
Edited by: Jaishankar on Oct 1, 2008 1:12 PM

Hi Pete,
Thanks.
1. Xpatch/context object works on source/input payload and not on target payload.
2. I can use enhanced receiver determination and do this in Mapping, but I dont want to do that.
3. Let us consider a sample scenario, where my BPM receives 2 input file files. File 1 is header123.txt and file 2 is item123.txt
The correlation I need to use here is 123.
Thanks
Jaishankar

Similar Messages

  • Receiver Determination - condition editor

    Hi,
    I have a receiver determination which receives files and the filename determines where the file is sent/routed. I am using the condition editor for this functionality and need some help. The filename contains the following format 'xxxxxx010xxx20070101.out' where xxx represents different codes depending on the extraction. I used the following in the condition editor:
    ++++++010* I understood each + to represent a character. This is not working, any ideas?
    Thanks,
    Leanne

    you can utilize XPATH functions in your conditions to acheive the same.
    Try to take the help of the following weblog and maybe the string functions of xpath to achieve your results.
    ref:
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    http://www.w3schools.com/xpath/xpath_functions.asp#string

  • Acces a particular position in fieldname into "condition editor"

    Hello someone!.
    Our XI systems have installed > SP14.
    We want to use filename into "condition Editor". Actually only can acces a context object area for select FILENAME but we want to compare with a particular position of the filename. In abap the expression will be filename+12(4) = 'ANUL'.
    How i can do into "condition editor" if filename is a context object variable?.
    Thanks for all.
    best Regards.
    Julián.

    Hi Julián,
    You could use the "Contains Pattern (CP)" functionality:
    http://help.sap.com/saphelp_nw04/helpdata/en/67/49767669963545a071a190b77a9a23/frameset.htm
    In your case it should work with the pattern ++++++++++++ANUL*
    Let me know, if this works for you.
    Regards
    Stefan

  • CcBPM - can't activate workflow when using expression in Condition editor

    Hi,
    My workflow (generated by ccBPM) won't be activated when I try to do an IDOC comparison (on DOCNUM), using an index (count), in the ccBPM Condition Editor.
    The condition looks like this:
    (msgs_receive[count]./HRTRPR01/IDOC/EDI_DC40/DOCNUM = msg_receive./HRTRPR01/IDOC/EDI_DC40/DOCNUM)
    There seem to be no errors when activating the Integration Process in the Integration Repository, however when looking into the SXI_CACHE, XI Directory cache, my integration process gets return code '99', even after reactivation.
    I get this error:
    Syntax error in expression Line1 Ext. IDE63443806B4211DBC393F1DE0ACE61FE
    The exception occurred (program: CL_SAI_SWF_RULE
    Symbol 'CE/KO' expected at position 1 in expression 'count{XSDSIMPLE::xsd:string;}'
    The only interpretation I make out of this is that it doesn't like my index (count) variable.
    Can anything be done to fix this?
    I use XI 3.0 SP14
    Thanks
    Olof Trönnberg

    Hi,
    Return code - 99
    1) Export  parameter might be wrong.
    2) Check Oss Notes 901366 & 708338.
    3) 99 occurs when there is a mismatch in the mapping
    4) 99 occur if all the active correlations are not used.
    5) Try this SXI_CACHE select your business process and
       click on activate. change the  the return code to 02
       and upon activating again.
    This will help you :
    http://help.sap.com/saphelp_bw31/helpdata/en/c6/893bca449311d1893e0000e8323c4f/content.htm
    Regards
    Agasthuri Doss

  • Dummy symbol in condition editor

    Hello all,
    Does anybody know if it is possible to use the dummy symbol "*" in the condition editor. (interface determination)
    My requirement is to test the incoming file name and check if it contains certain string.
    Ex : ( if filename = MM_IN_004_01_ECG_''001''.txt OR filename = MM_IN_004_01_ECG_''002''.txt )
    Or is there some other way to do it...
    Thanks for you replies.
    Best regards,
    Laurent.

    It's not in the "XPATH" but in the "Context Object".
    The CP option is available for both XPATH and Context Object......actually is is just the matter of selecting the right Middle Operand and making a correct entry in Right Operand.....Left Operand's type does not affect it
    I will get back to you as soon as i have tested
    yes please update the forum with your findings....
    Regards,
    Abhishek.

  • 1:N mapping without using BPM , based on segment conditions

    Hi All,
    I have to send 3 different files from source based on some conditions
    1) for the first file to be sent is okay
    2) But for second file and third file i need to check some conditions
    the conditions are
    If E1EDL44 case detail fields exists   i should generate second file and i should not create any third file  (it's one or the other, not both).
    If E1EDL44 case details doesnot exist i should generate third file and not second file...
    So My confusion is how to send either second or third file (any one only)
    If i do mapping  is it sufficient or also should i use condition editor in Receiver Determination...
    Please suggest u r valuable help..
    Thanks and Regards,
    sridhar

    Hi Sridhar,
    Make ur second interface Occurence as Optional 0:1 in ur Interfaec Mapping.
    In ur Multi-mapping (Message Mapping) also make ur  message type corresponding to ur second file as Optional.
    In ur mapping check the condition and if doesnot satisfy dont populate the second message type. Check this option.
    Regards,
    Sudharshan

  • In PI 7.1, condition editor does not show the outbound interface structure

    Hello,
    I am using PI 7.1, I need to use condition whild determing receivers. So I opened the condition editor, then open the expression editor, select XPath instead of Context object. I would expect that the outbound interface structure appears in the box underneath the XPath, so that I can navigate the structure to choose the field I want to use. However nothing appears here. Do you knwo why is that? Or do I need to do anything to bring up the outbound interface structure in the expression editor?
    Thanks
    Jayson

    Hi Jayson,
    I had the same problem
    the use of context objects and the value help for xpath is available for XI3.0 interfaces in PI 7.10 only. The functionality for "new" interfaces has been implemented in 7.11 only.
    you have to use xpath w/o value help.
    I have created a context object in one of our 7.10 test systems, and indeed I was unable to use it in a receiver determination unless the service interface pattern is "Stateles (XI 3.0 compatible)". If you were to change the service interface to that pattern, you have to change the operation name unless it is already identical to the interface name. So that may not be an option for you.
    It was possible to use the context object in a receiver rule but then I could not activate the receiver determination because the software component version was supposedly unknown. I will check with my PI contacts - please let me know if the change to "XI 3.0" interface would be a possible workaround for you.
    Try the steps which I am giving below, although it's a workaround and don't know the exact reason why it is failing.
    1. Open your Outbound Message Interface (which you are using in your Receiver Determination) in IR, edit it and change the Interface pattern (which is there just below the category "Outbound") to "Stateless (XI30 - Compatible)" , save it activate it.
    2. Follow the same step for your Inbound Message Interface. Change the Interface Pattern from "Sateless" to "Stateless (XI30 - Compatible)" .
    3. Go to ID. Remove your Outbound and Inbound Message Interface from their respective Business Service/Comp and add it again.
    4. Create your your receiver determination again using the Outbound and Inbound MI you have changed.
    5. Open condition editor of your receiver determination.You should be able to see your Message Interface and can choose the XPath.
    Thanks,
    Raj
    Edited by: raj reddy on Jan 21, 2009 5:41 PM

  • Receiver determination wildcard in condition editor

    Hi experts,
    I have a question regarding the condition editor for receiver determinations on PI 7.1. I have an xpath expression on the left side and I need to have a condition on the right side that includes a certain pattern.
    One example:
    p1:myDocument/element = 1A2B*
    There I would want to read the xml element "element" and redirect to a certain communcation component if the value of 'element' starts with 1A2B.. regardless if its 1A2B3 or 1A2BC and so on.
    Is that possible? I tried like in the example to use * as a wildcard, but that didn't work.
    Any help would be appreciated.

    It should not be = operator ....it should be Contains Pattern Operator
    Refer: http://help.sap.com/saphelp_nwpi71/helpdata/EN/67/49767669963545a071a190b77a9a23/content.htm
    Regards,
    Abhishek.

  • While opening condition editor its not showing me the structure

    Hello Experts,
         Mine is a proxy to file scenerio.....with a condition in reciver detrmination and while giving conditon in condition editor,  due to an unknown reason,  its not populating the Message Structure.
    It is giving an error messege " Message interface does not exist in any software components installed on this business system "
    If there is some 1 with similar experience,
    pls revert back,
    Arnab .
    Edited by: Arnab Mondal on Sep 25, 2008 12:14 PM

    Hi,
    If you get the following msg while selecting the BS in Receiver Determination
    "Message interface does not exist in any software components installed on this business system"
    1) Open ID-----Double click on Business system that which u are using in the scenario
    2) Check whether you are able to see the SWC in the Othere attributes TAB
    3) If it is not there means goto SLD----Open the Technical System of R/3 by choosing Web as ABAp type
    4) Click on Installed Products TAB
    5) Click on Add New product and add your Product of the SWC whcih you are using for developement and Save it
    6) Then goto Business systems TAB in the same Technical systems window and click on the Business System appears in the window.
    7) Click on Installed products and Check the check box of your Product and then finally save that.
    Now you should be able to see the SWC in the Othere attributes TAB in ID
    Regards
    Seshagiri

  • PI 7.0 Condition Editor: Picking particular value of multiline element

    Hi PI-Gurus,
    we're on PI 7.0 with the old condition editor. Within a condition we have to check a value of an element at a particular position. If the value in the second E1EDK14 segment (QUALF 007) is "04", we can process the message. Otherwise the message hast to be stopped.
    Example:
    <E1EDK14 SEGMENT="1">
      <QUALF>006</QUALF>
      <ORGID>01</ORGID>
    </E1EDK14>
    <E1EDK14 SEGMENT="1">
      <QUALF>007</QUALF>
      <ORGID>04</ORGID>
      </E1EDK14>
    <E1EDK14 SEGMENT="1">
      <QUALF>008</QUALF>
      <ORGID>1000</ORGID>
    </E1EDK14>
    Is this possible to address a particular element in the ORGID list?
    As I understand, normally the ORGID's come as a multiline element and can be addressed like this:
    /ORDERS05/IDOC/E1EDK14/ORGID
    My guess is the following:
    /ORDERS05/IDOC/E1EDK14<b>[1]</b>/ORGID  - and unchecking the multiline checkbox
    Am I right, or is there any other solution?
    Help is as always highly appreciated and will be rewarded!
    Thanks in advance!
    Matthias

    Hi,
    The condition editor uses full-blown xpath expressions so you could even use something like
    ORDERS05/IDOC/E1EDK14[QUALF='007' and ORGID='04']/ORGID
    and then for the operator use EX
    or
    /ORDERS05/IDOC/E1EDK14[QUALF='007']/ORGID
      and then operator = and value 04
    Edited by: ciochinah on Feb 16, 2011 7:59 PM

  • CcBPM Loop Condition Editor

    Hi
    I am trying to control the number of iterations of a Loop witihn a ccBPM Integration Process.
    I have a Container name: index type: xsd:integer , which is initialised to 0 before the loop is entered.
    I also have Container name: InterfaceCount which is an Abstract Interface containing the total number of iterations required.
    In the Condition Editor for the Loop, if I put    index!=InterfaceCount  
    ... it complains that types xi:operation and xsd:integer cannot be compared.
    Would someone be able to tell me the correct way of doing this please?
    Thanks in advance.

    Hi.  Thanks for the reply.
    What I need to do is compare index to a value passed in on a field on a message.
    Maybe I need to define another integer container, and then use a  'container operation' to extract the interface field to this new integer container, before entering the loop.  Then I can compare  my 'index' integer with the new one to control the loop?

  • Issue with condition editor in integration process

    Hi,
    Now there is the chance to use this feature for the first time.
    Seems to be very easy.... No, it isnt!
    Variable  RETURN (type string) referencing to a field of a message structure is used for this condition:
    RETURN!="I001"
    So, if the variable does not contain the string I001 the process should use the exception path.
    Ok, easy! This works!
    But now I have this case to solve with the condition editor.
    If the variable does not contain the string I001 OR E002 the process should use the exception path.
    So my condition looks like this now:
    RETURN!="I001"|RETURN!="E001"
    => If return is NOT I001 OR Return is NOT E001....
    Result: semantical check is OK but the process always chooses the exception path now.
    Oh, why this?
    An alternative RETURN!=("I001"|"E001") does not pass the semantic check.
    So I am missing ideas now how to write down the condition for my switch step
    as this issue seems to be not discussed in any thread here.
    Any help with this strange feature is really appreciated!
    Best regards
    Dirk

    Hi Dirk,
    => If return is NOT I001 OR Return is NOT E001....
    for me, your logic is wrong, what you need for your exception receiver is : 
    => If return is NOT I001 AND Return is NOT E001....
    NON (a OR b) <=> (NON a) AND (NON b).
    so for your receiver_ok, you have to use the opposite: so the solution providen by Ramesh, and so to ahve two receiver lines like that:
    (Result = "l001" OR Result ="E0011" )  ==> Receiver_ok
    <blank_condition (*)> ==> Receiver_Exception
    (*) all condition which does not respect the 1st ones: Result = "l001" OR Result ="E0011".
    regards.
    Mickael

  • IDoc Message Structure Missing from Condition Editor - SWCV Dependency

    Hi All,
    I have an issue whereby I am missing the Message Structure in the Condition Editor Dialog while doing Receiver determination. I have seen others posts with the issue but none of the solutions seem to apply to me. My config:
    I have a SWCV called MY_SAP_BASIS, which is defined in the SLD with SAP BASIS as prereq. I import this SWCV into IR and build some objects. I wish to use an IDoc, so I import it into SAP BASIS, and it appears under my SWCV (MY_SAP_BASIS) in the "Basis Objects" section, but not directly under "Imported Objects" - as I would expect because of the relationship created in the SLD.
    My issue comes when I try to create a Rec. Determination. I want to use the condition editor, for multiple receivers, but when I click on the button to bring that up, first I get the error "Message interface does not exist in any software components installed on this business system", then when I try to use the Structure of the IDoc for an XPath, the structure browser is empty.
    I can't see why this would be. If I look in the SLD, and look at the Business System in question, it lists MY_SAP_BASIS and SAP BASIS as being installed.
    Also, when I do a "Where used" in IR on that IDoc, using my own SWCV and SAP BASIS, I get the same list. I have also checked the GUID's between the SLD and IR, and they are identical (except fpr hyphens in the display, which I am assuming don't matter).
    Anyone have any ideas? I assume that if I import the IDocs directly in MY_SAP_ERP, I will be able to solve this. But I would rather the Software Dependency worked!
    Many thanks.

    Jai/Michal,
    Many thanks for your replies. But unfortunately I had already checked this and I don't think it is the issue. My first message probably wan't as clear as it should have been: I have a Product "MY_SAP_BASIS" - this has one SWCV under it, also called "MY_SAP_BASIS". This SWCV has a dependency on "SAP BASIS 4.6c". Now, on the Technical and Business systems involved, the Product "MY_SAP_BASIS" is installed. This, as you would expect from the dependency, brings across the "MY_SAP_BASIS" SWCV and the "SAP BASIS 4.6c" SWCV, so they are both installed on the technical system . So I don't know what else I should be adding? Unless my understanding of Software dependencies is incorrect, I think my config looks right in the SLD. The SWCV under which the IDoc imports are done is "SAP BASIS 4.6c", and this is installed on both the technical and business system. The only difference is that it gets there through a software dependency, and is not added "directly". In IR I can see the imported objects under the "MY_SAP_BASIS" SWCV - in the "Basis Objects" section.
    Is there anything else anyone can suggest?

  • XPath for root node in condition editor

    Hi,
    I have a HTTP to IDOC scenario. I have to accept any incoming document,(i will know only at runtime whether it is ORDERS or INVOICE or ASN etc) and post it to the respective receiver based on what is the name of the root node. But how do i specify this in the condition editor? if i give /* or name(/*) it does not work.Can anyone suggest a solution for this?
    Thanks
    Shakthi

    Well I have one solution but don't konw if it is worth for you.
    First create one mapping called pre_mapping in this mapping map all fields and the root node value to the target structure correspondingly . Now use BPM with simple receive & send steps. BPM should send the message back to XI.
    Use the final mapping with this messge retuned from BPM.
    Now use the x-path and select the field from source structre (which BPM has sent back to XI) which contains IDOC type. So in this case your sender system will be BPM.

  • Predicates for XPath in Condition Editor of NWDS for PI AEX 7.4 (SP 7)

    Dear all,
    we are in the middle of migrating from our old Dual Stack PI 7.0 to our new PI 7.4 AEX.
    We have a fairly largen receiver determination on the old system that makes heavy use of predictes. One expression for example looks like this
    (SHPMNT05/IDOC/E1EDT20/E1EDL20/E1EDL37/E1EDL49/E1EDL50[XSIQUALF='EEIVERF']/VLABDATA = 01)
    However, when I'm trying to insert this in NWDS' condition editor there's an error stating "Predicates are only allowed with EXISTS operator"
    1. Is this a limitation of the condition editor in NWDS?
    2. Is there a way to configure the above XPath so it is working in NWDS?
    3. Would it be safe / wise to configure the mappig in ICO in Swing Tool or would this be overwritten by NWDS configuraiton?
    Many thanks
    Jens

    Hi Jens
    From SAP library, the example shows that the usage of predicate is with the EX operator, so maybe it is a limitation.
    Integration Directory - SAP Library
    Maybe you can try to combine your two conditions in the predicate and use it with the EX operator
    (SHPMNT05/IDOC/E1EDT20/E1EDL20/E1EDL37/E1EDL49/E1EDL50[XSIQUALF='EEIVERF' and VLABDATA = '01'] EX)
    Rgds
    Eng Swee

Maybe you are looking for

  • Csv file format problem

    prodorder;batchno   ;text1    ; text2; text3;text4;text5; "100001012;0008339492;487-07-G1;22;6,86;000081022G;  " "100001013;0008339493;487-07-G1;22;6,86;000081022E;1 " This is my sample csv file. i want to upload using bdc. im splitting the internal

  • Display disaster!

    Hi all, I have a major problem with LR though I'm guessing it's not LR's fault. I have two Samsung monitors and if I drag LR from one to the other, after about a second, the image changes significanty in terms of color rendition. On the right monitor

  • Cloud access for second line

    When I access Verizon cloud, it only reports information for one of my phone lines; I have two in my name.  It is especially important today because my phone has died. How does one access a line on an account with multiple lines--it always reports on

  • Change graphics Card macbook pro, is it possible?

    Hey, Im just wondering if it's possible to upgrade the graphics card on a macbook Pro, late 2011 model. if so, what's the price?

  • How do I get rid of the "stop sign" next to some of my music and enable them to play?

    I just downloaded songs to my iphone and now all the new songs and some old ones have the stop sign next to them. How can I either turn off iCloud (which is what I'm assuming is the problem) or just become able to play the songs. Whenever I try to pl