IDOC value with Mapping

Hi,
   i have a segment that will hold n number of occurences. Ex: E1BPE1MARAEXTRT. Field name called field1.
        i need to pass the occurence value to target field and the same value should not repeat in target .
Ex:
field1 value 1000------target- Outputfield-1000
field1 value 1000-----target - i should not send.
field1 value 1001-----target - i should send to target field.
i have an idea how to find the second occurences. i don't know how to check the value which i receive from idoc and the prior idoc value.
Please Suggest..

create advanced user defined function with 1 parameter and cache entire queue option ticked in the mapping editor and map as follows.
field1-advanced user function-target output field.
result.addvalue(a[0)).
This should solve ur problem and make the occurence of ur output field to 1.

Similar Messages

  • How to map IDoc segment with qualifiers

    Hi everyone!
    I have the following problem: In an IDoc of type DESADV01 there can be several segments of type E2EDS01. Each segment has a different qualifier, which is the value of the field SUMID in this case. My target structure (type EDIFACT) now has several segments, each again with a sort of qualifier. Now I have to map the values of certain source segments to the respective target segments.
    Exaple (in XML format):
    Source
      <E1EDS01 SEGMENT="1">
        <SUMID>021</SUMID>
        <SUMME>0000000001.000</SUMME>
        <SUNIT>KGM</SUNIT>
      </E1EDS01>
      <E1EDS01 SEGMENT="1">
        <SUMID>022</SUMID>
        <SUMME>0000000001.000</SUMME>
        <SUNIT>KGM</SUNIT>
      </E1EDS01>
    Target
      <S_MEA>
        <C_C502>
          <D_6313>N</D_6313>
        </C_C502>
        <C_C174>
          <D_6411>KGM</D_6411>
          <D_6314>1</D_6314>
        </C_C174>
      </S_MEA>
      <S_MEA>
        <C_C502>
          <D_6313>G</D_6313>
        </C_C502>
        <C_C174>
          <D_6411>KGM</D_6411>
          <D_6314>1</D_6314>
        </C_C174>
      </S_MEA>
    (i have omitted several details here, but I'm only interested in the general procedure anyway).
    So in general the source segment with qualifier "021" should be mapped to a target structure with qualifier "N" etc.
    How can this be done using standard XI mapping techniques?
    Regards, Joerg

    Hi everyone!
    Thanks for your input data - unfortunately this wasn't quite what I was looking for. However I thik I solved my original problem and I just wanted to share this solution with you - maybe it helps others, maybe some of you have suggestions what I could do differently.
    To sum up the requirement: There can be multiple input segments, each with a certain qualifier. These input segments have to be mapped to the target segments, respectively - however, the qualifiers change. There can be several segments with qualifiers that do not match the requirement, and required segments might be missing.
    So here's what I came up with:
    Use the qualifier of the source segments as an input to a <b>FixValues</b> function. In this function, map the desired qualifiers to the value <b>true</b>, use <b>false</b> as the default value. Map the output of the <b>FixValues</b> function to a <b>createIf</b> function and use this to create the desired output segment. This way, for each of the required segments, one target segment will be created. All other segments (with unwanted qualifiers) will be removed.
    So far, this technique worked for me - do you have improvements/suggestions?
    Regards, Joerg

  • How to map Idoc fields with external file

    Hi All,
    How to map Idoc fields with external file.
    I want to check the settings where Idoc fields are mapped with external file.
    Thanks in advance.
    Regards,
    Govind.

    If you have configured a fileport where on trigger of IDOC you are creating the file, you can look at the message type documentation and get the offset values for each field in each segment

  • I have SSRS parametarized report in that one data set have repeated values with query parameter . but while am mapping that query parameter to report parameter i need to pass distinct values. How can i resolve this

    I have SSRS parametarized report in that one data set have repeated values with query parameter . but while am mapping that query
    parameter to report parameter i need to pass distinct values. How can i resolve this

    Hi nancharaiah,
    If I understand correctly, you want to pass distinct values to report parameter. In Reporting Service, there are only three methods for parameter's Available Values:
    None
    Specify values
    Get values from a query
    If we utilize the third option that get values from a dataset query, then the all available values are from the returns of the dataset. So if we want to pass distinct values from a dataset, we need to make the dataset returns distinct values. The following
    sample is for your reference:
    Select distinct field_name  from table_name
    If you have any other questions, please feel free to ask.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • File to multiple IDOCs scenario with the same receiver system

    Hi guys,
    I have to design and implement the following scenario:
    I will receive one file with many lines (Records) with data for materials, quantities, operations etc..
    Based on the values of some fields of each line, I will have to create an IDOC for each material.
    For example:
    if operation type = "INSERT", and Labor = 001 then create 3 Idocs of type MBGMCR with movement types=101, 261,311 that have to be posted one after the other to the same receiver system.
    else if operation type = "INSERT", and Labor <> 001 then create an Idoc MBGMCR with movement type=311 and plant = 1001.
    else if operation type = "Delete", and Labor = 001 the created 3 Idocs MBGMCR with movement type=312, 262 1002 and post them serially to the same receiver system.
    else if operation type = "Delete", and Labor <> 001 the created 1 Idoc MBGMCR with movement type=312.
    All IDOCS are posted to the same SAP R/3 system. We do not care about the sequence, except for the cases where 3 IDOCS are created.
    I am trying to think of a good design in performance terms.
    It is obvious that I will need BPM for sure.
    I am thinking of creating a mapping program that will produce 4 message types for the different cases from the initial file and then create a different message mapping for each case from the message type to the IDOC.
    I am asking you if I have to include everything (mappings) in BPM with a "fork" step?
    Or shall I produce only the 4 message types and then post them to R/3 and execute the mappings in R/3?
    Best Regards
    Evaggelos

    hi,
    >>I am thinking of creating a mapping program that will produce 4 message types for the different cases from the initial file and then create a different message mapping for each case from the message type to the IDOC.
    To me this seems to be the right solution.
    here u will create different message mappings and write them sequentially in interface determination. the multi mapping will then be utilised in transformation step in BPM.
    thus if this is the only requirement there is no need of using a fork step.
    [reward if helpful]
    regards,
    latika.

  • Problems with mapping after bundling messages into one XML-file

    Hi all,
    Case 1: one DebMas IDoc ==> XI ==> one XML-file : no problems with mapping.
    Case 2: several DebMas IDoc's ==> XI ==> one XML-file : problems with mapping.
    Explanation:
    Incoming DebMas IDoc's:
    Businesspartner 1 : no Customer Master Partner Functions (E1KNVPM).
    Businesspartner 2 : Customer Master Partner Functions (E1KNVPM).
    Businesspartner 3 : Customer Master Partner Functions (E1KNVPM).
    Businesspartner 4 : Customer Master Partner Functions (E1KNVPM).
    After bundling into one XML-file:
    Businesspartner 1 : no Customer Master Partner Functions (E1KNVPM).
    Businesspartner 2 : no Customer Master Partner Functions (E1KNVPM) !!!!
    Businesspartner 3 : Customer Master Partner Functions of Bp 2 (E1KNVPM) !!!!.
    Businesspartner 4 : Customer Master Partner Functions of Bp 3 (E1KNVPM) !!!!.
    All the payloads of the IDoc's are correct.
    In the message mapping we use a Container for the Partner Functions (shown as below)
    Is this a serious bug in the mapping of SAP XI ?
    Does anyone knows how to solve this serious problem.
    E1KNVVM -
    > Partner_Container
    E1KNVPM -
    > Partner
       PARVW -
    > ParnerRole
       KUNN2   -
    > PartnerNumber
    Regards,
    Theo Pijlman

    Hi,
    Example:
    Input idoc has field F1 with occurence 0..unbnd
    My input values for field F1 is
    1
    none
    2
    3
    Say, I have a mapping, F1---->TargetF1
    In the target only 3 TargetF1s will be created for the values 1,2,3 and nothing will be created for the field F1 with no value.
    To overcome this, use collapse contexts.
    F1->collapsecontexts>TargetF1
    This way, the TargetF1 fields created will have the following values:
    1
    blank
    2
    3
    Collapse contexts makes sure that a target is created, even if there is a context change specified at the source.
    Hope this is clear.
    Regards,
    Smitha.

  • Difference in idoc adapter header mapping between SP14 and SP19

    Hi All,
    i have a very strange problem.......i have 2 XI systems : XI-sandbox and XI-dev.....
    XI-sandbox is on XI3.0 SP19 whereas XI-dev is on XI3.0 SP14...........
    I have a file->XI->idoc scenario which is same on both XI-sandbox and XI-dev....
    in receiver idoc adapter, i am using header mapping for sender service and in the sender service i am using XPATH of a field of control rec of idoc.........
    this scenario works fine on XI-sandbox which is on SP19 and the idocs are sent to SAP R/3 sandbox...........but this scenario on XI-dev gives error in SXMB_MONI in XI-dev of Call adapter - "No party conversion found".........
    So my question is that is there any difference in idoc adapter header mapping between SP14 and SP19.........
    Thanks,
    Rajeev Gupta
    Message was edited by:
            RAJEEV GUPTA

    ><i>so i cant use apply control rec values from payload.........</i>
    rajeev,
    I know this has nothing to do with the original problem but please do bear.
    If I undertood you posts correct, the Sender Partner Name is set in the Idoc Control record in the field SNDPRN in the mapping using some mapping logic.
    Now, this is the partner name with which the idoc is to be posted to thge R3 system.
    if yes, then like I have pointed above, using "Take Sender From Payload" in the Receivcer Idoc Adapter is a better option as pointed in the SAP help as well.
    As you are already populating the idoc control ecord with SNDPRN just make the SNDPRT as LS and then select "Take Sender from Payload" in the receiver Idoc adapter and the Sender Partner Name will not be taken from SDNPRN just as you want.
    This is different from "Apply Control Records From Payload" .
    Regards
    Bhavesh
    PS : you can ignore this reply if the situatios is too late to make this change and thanks for the patience.

  • Idoc control record mapping

    Hi,
    I am doing a flat file to idoc scenario from ftp server to SAP and in mapping I had disabled EDI_DC40 mapping and it is populated all the fields correctly except the sender partner no. field. It is populating the value as XXXFTPDEV whereas I need the logical system name of XI system to be populated. Do I have to enable EDI_DC40 mapping and map just the sender partner field with my value or in that case case I will have to map other control fields also. Is there any other way by which I can overwrite just the sender partner no. field value?
    Thanks,
    Jassi

    It seems SNDPRN is not populated from the values in mapping but it takes default values from IDOC adapter. I have tested this and it is mentioned in this blog also.
    /people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
    Is there any other way to populate sender partner no. field other than changing the logical system name in SLD?
    Thanks,
    Jassi

  • If a  class method exporting a value with the generic type 'data'.

    Then how can I get the information?
    For exmple.
    cl_my_clss->get_value( exporting ev_data = .... ) .
    ev_data is a type of data.
    I can not use DATA : lv_mine type data. because generic data should be used in formal parameter, however , if I use a field symbol, how to assign value with out knowing the data type?
    Best regards,

    Hi Blake,
    As per my understanding,
    You are getting the data type from the database table....
    You want to use the same data type....
    Lets say for example:
    You have a db table x with field y having data type Z.
    What you do is that, while declaring the data type for the attribute in the method use the reference as table_name-field_name(x-y).
    Or....
    use ANY. This will give you a chance to map any field type to this method....
    Note: Using ANY will limit the syntax that you can use within the method......
    Regards,
    Kunjal

  • IDoc failed with the error massaeg "Instance of object type could not be ch

    Hi All
    I am getting IDoc failed with the error massaeg "Instance of object type could not be changed"
    Message type :PORDCR
    Basic type : PORDCR05
    Message no. BAPI003
    Status : 51
    All POs are get uploaded in SAP during Cut over activities only.
    Please suggest on this.It will be a great help.
    Thanks
    Ajit

    Hi
    After uploading POs into SAP we are changing quantity and value in PO in Legacy system, and for this all IDocs are failed, subsequently these changes are not triggering to ECC.
    Please help
    Thanks
    Ajit

  • JDBC to IDoc ( error when mapping multiple JDBC records to IDoc)

    Hi,
    I am working on JDBC to IDoc scenario, I have declared row as 0 to unbounded and by default the IDoc structure is 1..1.
    Inorder to map multiple rows from JDBC to get multiple IDoc's, I have changed the occurrence of IDoc in "Messages" tab of Message mapping to 0 to unbounded.
    I have mapped "row" to "IDoc".
    When I test the mapping, it works fine, giving the same number of IDoc's with that of row.
    When I test end to end, in SXMB_MONI, it gives me following error:
    <SAP:Code area="IDOC_ADAPTER">ATTRIBUTE_IDOC_RUNTIME</SAP:Code>
      <SAP:P1>MSGGUID 54A3A64E895D48EC3F20C69FEFE2E82B: Tag found instead of tag IDOC BEGIN=</SAP:P1>
    can any one help me out with this.
    Thanks in advance.

    Hi Jwalith,
    Check this blog from Michel
    The specified item was not found.
    Make sure that you changed occurance as per this blog.
    hope this is helpful
    regards,
    Venkat.

  • IDoc to RFC Mapping.

    Hi Everyone,
    I have a problem with mapping. My Scneario is Idoc to RFC.
    Eg. Sender: GSVERF03             
       ->IDOC                                    
    E1EDP01 (Occ. 0 to n)                           
            ...Field_A                                               
            ...Field_B
            ...E1EDP02 (Occ 0 to 25)
      ......          Field_C
      ......          Field_D
      ......          Field_E
    Receiver: ZRFC
      ->T_DELVRY
    ... ->item
    ........      Field_1
    ........      Field_2
    ........      Field_3
    Conditions:
    If Field_A = 001, then Field_B = Field_3.
    If Field_A = 001,
        then
        If Field_C = 001, then Field_D = Field_1.
        If Field_C = 001, then Field_E = Field_2.
    As per my business requirement, i wont get more than one E1EDP02 segment.
    How to do this mapping using Graphical mapping.
    Rgds,
    ¬Nav

    Field_3
    +If Field_A = 001, then Field_B = Field_3
    >
    This can be achieved by IfWithoutElse
    Check your condition using If and give Field_B as second parameter
    Field_1
    If Field_A = 001,
    then
    If Field_C = 001, then Field_D = Field_1.
    If Field_C = 001, then Field_E = Field_2.
    >
    here check Field_A condition , 2nd input of this IfWithoutElse check for conditions on FIeld_C
    Similar would be for Field_2
    You will have to check with context. try by setting context of Field_C,Field_D,Field_E to
    E1EDP01

  • Idoc to idoc scenario with idoc tunneling

    IN idoc to idoc scenario with idoc tunneling  the XML_CONVERSION parameter to value 2  is set whish means An IDoc is converted to IDoc-XML if requested by the service
    I want to know where we specify this and how we specify?

    1. /people/michal.krawczyk2/blog/2005/11/21/xi-idoc-to-idoc-tunneling--how-fast-and-easy-can-you-get
    2. /people/alessandro.guarneri/blog/2006/03/05/managing-bulky-flat-messages-with-sap-xi-tunneling-once-again--updated
    ref these weblogs.
    It is given under;
    <i>TCODE - SXMB_ADM
    - Integration Engine configuration
    - set the XML_CONVERSION parameter to value 2</i>

  • Exception setting property value with CGLIB ( in hibernate)

    My hbm.xml file is:
    <hibernate-mapping>
    <class name="com.dst.fourx.model.codeModel.CodeGroupDisplay" table="CODE_GROUP_DISPAY1">
    <composite-id name="codeGroupDisplayKey" class="com.dst.fourx.model.codeModel.CodeGroupDisplayKey">
    <key-property name="nlsLanguage" type="java.lang.String" column="LANG_CD" />
    <key-many-to-one name="codeGroupCode" class="com.dst.fourx.model.codeModel.CodesGroup" column="CD_GRP_CD" />
    </composite-id>
    <property name="createDate" column="CREATE_DT" type="java.util.Date" not-null="true"/>
    <property name="createUserCode" column="CREATE_USER_CD" type="java.lang.String" not-null="true"/>
    <property name="updateDate" column="LAST_MOD_DT" type="java.util.Date"/>
    <property name="updateUserCode" column="LAST_MOD_USER_CD" type="java.lang.String"/>
    <property name="displayText" column="DISPLAY_TXT" type="java.lang.String" not-null="true"/>
    </class>
    <query name="findAllEditableCodeGroups">
    <![CDATA[from CodeGroupDisplay]]>
         </query>
    </hibernate-mapping>
    I m getting the following error while running the above query:
    org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.dst.fourx.model.codeModel.CodeGroupDisplayKey.setCodeGroupCode
         at org.hibernate.tuple.PojoComponentTuplizer.setPropertyValues(PojoComponentTuplizer.java:63)
         at org.hibernate.type.ComponentType.setPropertyValues(ComponentType.java:262)
         at org.hibernate.type.ComponentType.resolve(ComponentType.java:447)
         at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:182)
         at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:759)
         at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:292)
         at org.hibernate.loader.Loader.doQuery(Loader.java:412)
         at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
         at org.hibernate.loader.Loader.doList(Loader.java:1593)
         at org.hibernate.loader.Loader.list(Loader.java:1577)
         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
         at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
         at com.dst.fourx.core.impl.ao.dao.actions.HibernateNamedQueryAction.execute(HibernateNamedQueryAction.java:79)
         at com.dst.fourx.core.impl.ao.dao.BaseDAOHibernate.execute(BaseDAOHibernate.java:129)
         at com.dst.fourx.core.impl.ao.dao.AddEditCodeDAO.getAllFundingTypes(AddEditCodeDAO.java:47)
         at com.dst.fourx.core.impl.ao.dao.AddEditDAOTest.testGetCreditBankAccts(AddEditDAOTest.java:29)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at junit.framework.TestCase.runTest(TestCase.java:154)
         at junit.framework.TestCase.runBare(TestCase.java:127)
         at junit.framework.TestResult$1.protect(TestResult.java:106)
         at junit.framework.TestResult.runProtected(TestResult.java:124)
         at junit.framework.TestResult.run(TestResult.java:109)
         at junit.framework.TestCase.run(TestCase.java:118)
         at junit.framework.TestSuite.runTest(TestSuite.java:208)
         at junit.framework.TestSuite.run(TestSuite.java:203)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Caused by: net.sf.cglib.beans.BulkBeanException: com.dst.fourx.model.codeModel.CodesGroup$$EnhancerByCGLIB$$fd9c7e4e
         at com.dst.fourx.model.codeModel.CodeGroupDisplayKey$$BulkBeanByCGLIB$$ae2c0401_2.setPropertyValues(<generated>)
         at org.hibernate.tuple.PojoComponentTuplizer.setPropertyValues(PojoComponentTuplizer.java:59)
         ... 32 more
    Caused by: java.lang.ClassCastException: com.dst.fourx.model.codeModel.CodesGroup$$EnhancerByCGLIB$$fd9c7e4e
         ... 34 more

    check the setter method for the property LANG_CD in com.dst.fourx.model.codeModel.CodeGroupDisplay.
    it must be like -
    setNlsLanguage(CodesGroup xyz) { ... }
    The paremeters must be objects, not the type of the database column. We can specify the actual field in CodesGroup which acts as the foreign key in CodeGroupDisplay in the "property-ref" attribute of <many-to-one> element in the mapping file for CodeGroupDisplay.
    This worked for me. Hope it works for you too.

  • IDoc to IDoc Scenario with High Volumes

    We have requirement to load around 2.4 million idocs using XI from source SAP to target SAP system in ~8 hours. It's a IDoc to IDoc scenario with simple mapping involved.
    I Have looked at various weblogs with the design optons such as BPM collect pattern, collect pattern using IDoc XML file and IDoc Packaging.
    I am looking for inputs from real time experiences on such scenarios...i.e performanace statstics, best practices to handle such scenarios, hardware, XI basis tuning etc...
    Please share any experiences on the same...
    Regrads
    Anand

    Thanks Michal and Chandra...
    Chandra,
    I have looked into the weblog mentioned( option 2 - collecting idocs using IDoc XML port).
    I undersatnd that performance would also depened on hardware,tuning, idoc size, mapping complexity etc, but just get a rough idea and to decide on the design I was looking for stats, approaches followed in other projects  and past experiences in such scenarios.
    Michal,
    I cannot avoid collection of idocs as sending idoc's individually from source to target will have performance problems.
    I can avoid BPM by using IDoc XML port collection ( option 2).
    2.4 million idocs in 8 hours would mean that XI needs to process 300K idocs per hour.  I guess I need to try option 2  and check the performance.
    Regards
    Anand

Maybe you are looking for

  • Short dump while PO creation with Tax Code

    we are facing problem while creation PO, while providing the Tax code(Example V0), its going for short dump, check the below the program SAPLV61Z and The exception must either be prevented, caught within the procedure "SEL_KONDTAB" "(FORM)", or decla

  • How can I set the Corporate Logo instead of Oracle Discoverer logo in 10g

    Hi, How can I set the corporate logo/corporate welcom html file instead of oracle discoverer logo in oracle discoverer plus for olap reports version 10.1.2.48.18. while loading the d4o sessions. Exactly what are all the steps that I need to follow .

  • My iphone is locked, in lost mode and was erased from my iCloud. How can I restore it or reset it completely?

    reset/restore my iphone. It is disabled and stuck in lost mode and erased from my iCloud. I need to know how to reset the phone. So far nothimy I have looked up can help. Not even recovery mode.

  • No .bash_profile in 10.6?

    Hi all, I need to edit my .bash_profile to install/run some software. Unfortunately, it's not in my home directory like it should be -- I've checked via terminal, turned on invisible files, etc. Can I simply create a basic text file and call it .bash

  • Latest J2EE SDK and Servlets

    Hi, I downloaded the latest J2EE SDK and I wish to use it in Eclipse IDE. Trying to compile a servlets (a my own one) a javax.servlet cannot be resolved to a type error occurs (shouldn't this package be part of the Sun AS provided within the SDK?). S