Serialization by Object Type of IDOCS Out of XI

Hi,
I have the following scenario:
    File>XI>SAP DEBMAS IDOC(s)
If an IDOC errors out (bad data sent in, customer locked etc.) it is going to create a work item on the receiving SAP system that will be reprocessed by a business user.
The situation I want to prevent is this:
IDOC 1 -
Updates customer 100. 
Changes the street to 222 Main St.
This IDOC errors out because customer 100 is locked.  A work item gets created for reprocessing.
IDOC 2 sent in before the work item is reprocessed -
Updates customer 100.  Customer is no longer locked.
Changes the street to 222 Main St South.
Now the work item is reprocessed and the customer is updated to 222 Main St when it should be 222 Main St South.
I think I can use serialization to prevent the second IDOC from being processed before the 1st IDOC is successfully processed.  However, I would like to allow an IDOC for customer 300 to be processed even if an IDOC for customer 100 is in error.
Can I use Serialization By Object Type to accomplish this?(http://help.sap.com/saphelp_erp2004/helpdata/en/0b/2a66c9507d11d18ee90000e8366fc2/frameset.htm)
Help.sap shows me how to set up the Serialization on the receiving SAP system.  However it states that the serialziation has to be set up on both systems.  Does this mean that I just do that same config on the XI system?  How does XI support the Serialization By Ojbects concept?
Thanks,
Jeff

HI Jeff,
My thoughts below....
XI has to do the Job that would have been done by an SAP sending system...
For instance, based on an object key some serialization numbers needs to be created & attached to the IDOC control record.
I donot have access to a system right now...but one should be able to do this in many ways...
One way i would do is like this...Enable serialization (say for customer master from the SAP system which i have access to)...Trigger some IDOCs making changes to different master records..see how the numbering is done by the SAP System and how it is attached to the IDOC(This is just to do a similar process as sap would do)....
Once i see how SAP does it while sending the IDOCs, i will genearate a number on XI abap stack using a number range object & attach it to the IDOC as though it was done by the sending system...
My 2 Cents...
Thanks,
Renjith.

Similar Messages

  • After serialize a object what will be the value of reference and primitive

    After serialize a particular object what will the value its object references and primitives ???
    please go through the following scenario
    import java.io.*;
    class Dog implements Serializable{
         String dogString = "haiHai";
         int dogSize = 555;
         public String toString(){
              return "This is Object Man";
    class MyTestSerial
         Dog d = new Dog();
         MyTestSerial(){
                   try{
                        System.out.println("Before Serialization Dog object is : " +d);
                        System.out.println("Before Serialization d.dogSize : " +d.dogSize);
                        FileOutputStream fis = new FileOutputStream("MyTest.ser");
                        ObjectOutputStream obs = new ObjectOutputStream(fis);
                        obs.writeObject(d);
    obs.writeInt(d.dogSize);
    obs.writeObject(d.dogString);
                        System.out.println("After Serialization Dog object is : " +d);
                        System.out.println("Before Serialization d.dogSize : " +d.dogSize);
                   }catch(Exception e){
                   System.out.println(e);
         public static void main(String[] args) { MyTestSerial t = new MyTestSerial();     }
    In the above MyTestSerial class am serializing Dog object. After executing this obs.writeObject(d); the dog object will serialize without any problem.
    Now, once i try to print the dog object and dogString it should print the null value right ??
    and its primitive dogSize in the Dog class also print the value zero right??
    But am not getting those results. What mistake am doing here???
    Generally What will happen when we serialize a object or primitive value. After this what is the value of these types??
    Can any one a give the solution???
    Regards
    Dhinesh Kumar R

    Serializing merely copies the object data to the stream, the content is unaffected.

  • Passing Object types using JDBC

    I need to pass Oracle user-defined object types in and out of
    PL/SQL stored procedures. Is this possible???
    Thanks
    null

    Hi Tina,
    I just had another thought. JDBC for 8.0 doesn't support
    user-defined SQL types. This feature isn't implemented until 8i.
    Sorry about the false lead!
    So you'd have to wrapper your object in another PL/SQL method
    which 'explodes' the user-defined type, as:
    procedure can_call_from_jdbc (ename varchar2, empno number, ...)
    is...
    begin
    call my_procedure(employee_t(ename, empno, ...));
    end;
    Pierre
    Oracle Product Development Team wrote:
    : Hi Tina,
    : Yikes! I'm glad you asked; it made me realize that some info
    : that's supposed to be posted on our external site is missing.
    I
    : think it'll take about a week to push this to our external
    site.
    : I'll try to find you a version and email it to you directly.
    : Thanks!
    : Pierre
    : Tina Creighton (guest) wrote:
    : : I'm currently using version 8.04 with Objects option, I'm
    : trying
    : : to locate the oracle.jpub class. Is there a way to download
    : the
    : : new jdbc that works with objects. Thanks. Tina
    : : Oracle Product Development Team wrote:
    : : : Absolutely!
    : : : the easiest thing is first to use JPub to generate a Java
    : : object
    : : : which is an analogue to the SQL object you have. For
    : example,
    : : : if your SQL object is called 'EMPLOYEE_T', you can invoke
    : JPub
    : : : with:
    : : : $ jpub -sql=employee_t -url=jdbc:oracle:oci8:@
    : : -user=scott/tiger
    : : : or even
    : : : $ java oracle.jpub.Main -sql=employee_t
    : -url=jdbc:oracle:oci8:@
    : : : -user=scott/tiger
    : : : This'll give you a Java class used to represent Java
    : instances
    : : of
    : : : the SQL 'employee_t', featuring friendly setters and getter
    : for
    : : : the fields.
    : : : If you have PL/SQL programs which take arguments of type
    : : : employee_t, such as:
    : : : PROCEDURE P1 (N NUMBER, E EMPLOYEE_T) IS...
    : : : PROCEDURE P2 (N NUMBER, E OUT EMPLOYEE_T) IS...
    : : : PROCEDURE P3 (N NUMBER, E IN OUT EMPLOYEE_T) IS...
    : : : You can call them in a SQLJ program as:
    : : : main () {
    : : : employee_t e; // the class generated by JPub
    : : : #sql {call P1(1, :e);}
    : : : #sql {call P2(2, :out e);}
    : : : #sql {call P3(3, :in out e);}
    : : : to call your three PL/SQL procedures. After the call to P2
    : and
    : : : P3, your
    : : : variable 'e' will be populated with the contents of the new
    : : : employee_t value
    : : : that was output from the PL/SQL method.
    : : : (SQLJ is just a shorthand way of calling JDBC. SQLJ
    programs
    : : are
    : : : translated
    : : : into SQLJ programs by calling the "SQLJ Translator":
    : : : $ sqlj myfile.sqlj
    : : : Pierre
    : : : Tina creighton (guest) wrote:
    : : : : I need to pass Oracle user-defined object types in and
    out
    : of
    : : : : PL/SQL stored procedures. Is this possible???
    : : : : Thanks
    : : : Oracle Technology Network
    : : : http://technet.oracle.com
    : Oracle Technology Network
    : http://technet.oracle.com
    Oracle Technology Network
    http://technet.oracle.com
    null

  • IDOC - process code with error "Application Object Type not planned'

    Hi all,
    I am doing an inbound idoc.... in TCODE we42, i trying to put function module which i created, attached to the process code.
    However, when i put my function module ZIDOC_INBOUND to the process code... it comes out error, 'Application Object Type not planned.'
    Why is this so?
    Please advice...
    Thanks and regards...
    William Wilstroth

    HI all,
    I had solved this problem. I should have gone to we57 to tie the function module.
    thanks.
    William Wilstroth

  • IDOC - Application object type not planned

    Hi all,
    I am doing an inbound idoc.... in TCODE we42, i trying to put function module which i created, attached to the process code.
    However, when i put my function module ZIDOC_INBOUND to the process code... it comes out error, 'Application Object Type not planned.'
    Why is this so?
    Please advice...
    Thanks and regards...
    William Wilstroth

    Sorry... i think this should be in Data Transfer section

  • IDoc Error -Instance of object type could not be changed

    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
    Please suggest on this
    Thanks
    Ajit

    Hi Madhu
    All these POs are uploaded during the Cutover Activities only, I am not sure whether it is uploaded through LSMW or not. What I guess is If its uploaded thrugh LSMW , then we can't change any value in the PO.
    Please sugest how can I process allthese IDocs.
    Thanks
    Ajit

  • 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

  • MRESCR01 inbound IDOC error: "Object type 'TRANSID ' has no relationship '

    Hello,
    I am trying to get an inbound IDOC from XI to a SAP R/3 System.
    It's an extended idoc (MRESCR01) for create orders.
    The error at /we02 in the inbound system is:
    Object type 'TRANSID ', key '0A1F032A59B345D027B002DE ', log.system ' ' has no relationship 'OUTTID '
    Message no. RL007
    Diagnosis
    All the roles used in relationships of type 'OUTTID' should be found for object type 'TRANSID' with key '0A1F032A59B345D027B002DE' in logical system ''.
    System Response
    No such roles were found.
    Further information:
    XI process message succesfully, with the Z segments extended information. But, at the WE02, only one of the 3 extended segments arrives to SAP R/3.
    Thanks a lot for your help, best regards

    thanks shridar and michal for response.
    these solution solved the problem of the segments. now the 5 arrives to SAP R/3.
    but i keep getting the error and IDOC is not processed:
    IDOC STAT = Status 51
    Object type 'TRANSID ', key '0A1F032A59B345D03A7A0A26 ', log.system ' ' has no relationship 'OUTTID '
    Message no. RL007
    Diagnosis
    All the roles used in relationships of type 'OUTTID' should be found for object type 'TRANSID' with key '0A1F032A59B345D03A7A0A26' in logical system ''.
    System Response
    No such roles were found.
    Thanks and best regards,

  • Urgent: Application Object Type for ALE IDoc

    Hi All,
    I am struggling with ALE IDoc, I just wanted to know that is it mandatory to create Application Object Type when i have created my own message type, Idoc type, segment type and Function Module. I am Getting an error while excuting transaction we42( Maintaining Process code)
    Error: Application Object Type is not planned.
    Please Help with this.  i don't have any requirement of filtering or serialisation, so still do i need to create these application objects.
    Useful ans will be rewarded.
    Thanx

    Hi,
    Yes u need to have the assignment of Object type as ur extending the IDOC.
    Check the steps below:
    TCode- BD95.
    Create ALE object type  “Z...”  with table name “EKKO” and Field name “-BSART”
    Step2:
    Tcode- BD59 – “Assignment of Object type to Message”
    Give the message type “ORDERS”.
    Assign the object type “Z........” to segment type “E1EDK01’ with field “BSART”.
    Regards
    Kannaiah

  • IDoc Object type

    What is an IDoc object type and how to create it.
    This is in redfernce to the seconfd screen a person has to enter when he is creating a new process code for inbound processing.

    Hi,
    If you see the F1 help for this field it says that "Object type contains the method and events for error  processing of IDOCs of s specific message type".
    Look at the inbound process code INVL. Hit the button right adjacent to the Function module for process code INVL. Here you can see how and what entries are made on this screen.
    Let me know if you have any question.
    Regards,
    RS

  • Given a business object type, how to find out the underlying table name ?

    Hi,
    Given a business object type (e.g. BUSxxx), is there any Function Module that can be used to get the table name for that object ?
    Have been through the SWO* FM's but did not get anything yet.
    Pls let me know how this can be done.
    Regards,
    -Kev.

    >
    Kelevenwise wrote:
    > Thanks Christine for the response..
    > Let me add a few more details to clarify my requirement
    >
    > I need to read the data of business objects (not a specific one, but the application should be able to read data of any business object). Given a table name, I am able to figure out the column information and read that data. But all I have is the business object type, so would need to figure out all the tables (as you helpfully pointed out, there could be more than 1 for a business object) and then read from those tables.
    >
    > The reason I feel I cannot use the business objects methods directly is because I would not know which method to call to get me the relevant data - this is an external application, not called from within the system.
    >
    > Is there another way to achieve this requirement ?
    >
    > Regards,
    > - Kev.
    So, assuming for the moment we are just dealing with the PO BUS2012 business object, your external application will be passing you a BO type and also (presumably- otherwise you could be sending back an awful lot of data) a BO key,  and you then want to send back all the detail for PO - exactly what the GetDetail method that is present on most objects does - is that right?
    Since most BOs have a GetDetail method, can't you just use that? 
    Though I really can't see why your external application would be interested in all SAP BOs - most applications are a bit more specific than that.

  • How to enable IDOC serialization at message type level

    Hi,
    I am trying to enable IDOC serialization at message type and i am unable to achieve the desired results.
    SETTINGS DONE:
    I have done the settings required under SALE trsanaction
    ALE IMG (transaction SALE)
       Model and Implement Business Processes
          Configure Master Data Distribution
              Set-Up Data for Sending and Receiving Serialization
                  Serialization by Message Type
    I have done the settings in both the receiving system and the sending system.
    PROBLEM:
    I am trying to send the Material classification first and then followed by Material class and then try to send the material itself to the other system. Since the serialization is enabled in the system, i was expecting that there should not be any errors.
    But since the material classification IDOC is posted first it throws an error saying the Material Class does not exists. Since the serialization is enabled in the system i was expecting that the system would ensure that it post the Matrial class first and then post the material classification. I mean it would post in the order in which i have defined in the serialization.
    Settings at Partner Profile.
        - I have set the trigger in background for all the message types except the SERDAT message type which is set trigger immediately.
    Any idea what i am missing? Any suggestions on what needs to be done to ensure that the idoc is posted in serialization?
    Edited by: Workflow  learner on Jun 4, 2008 1:21 PM

    Hi,
    Create a custom transaction for PO Print & make the necessary changes as per your requirement  In the custom program which you attach to the custom transaction you can put a validation to display the price based on user ID or some other parameters.
    Thanks & Regards,

  • Implementing First In First Out Behaviour Using PL/SQL object types

    Hi Friends,
    I have a Integer Array of type Varray, I want to implement first in first out behaviour using Pl/SQL object type.Please provide me some idea that i can proceed. If you can provide me any sample code or any documentation,i will be very much thankful to you.Eagerly waiting for your reply.
    Thanks

    basically i have to implement a queue using pl/sql object types to traverse a tree as we can implement stack (LIFO).
    I can give an example of Stack implementation...
    CREATE or replace TYPE IntArray AS VARRAY(50) OF INTEGER;
    CREATE or replace TYPE IntStack_O AS OBJECT (
    maximalSize INTEGER
    ,top INTEGER
    ,position IntArray
    ,MEMBER PROCEDURE initialize
    ,MEMBER FUNCTION full RETURN BOOLEAN
    ,MEMBER FUNCTION empty RETURN BOOLEAN
    ,MEMBER FUNCTION getAnzahl RETURN INTEGER
    ,MEMBER PROCEDURE push (n IN INTEGER)
    ,MEMBER PROCEDURE pop (n OUT INTEGER)
    CREATE or replace TYPE body IntStack_O AS
    MEMBER PROCEDURE initialize IS
    BEGIN
    top := 0;
    -- Call Constructor und set element 1 to NULL
    position := IntArray(NULL);
    maximalSize := position.LIMIT; -- Get Varray Size
    position.EXTEND(maximalSize -1, 1); -- copy elements 1 in 2..50
    END initialize;
    MEMBER FUNCTION full RETURN BOOLEAN IS
    BEGIN
    RETURN (top = maximalSize); — Return TRUE when Stack is full
    END full;
    MEMBER FUNCTION empty RETURN BOOLEAN IS
    BEGIN
    RETURN (top = 0); — Return TRUE when Stack is empty
    END empty;
    MEMBER FUNCTION getAnzahl RETURN integer IS
    BEGIN
    RETURN top;
    END;
    MEMBER PROCEDURE push (n IN INTEGER) IS
    BEGIN
    IF NOT full
    THEN
    top := top + 1; — Push Integer onto the stack
    position(top) := n;
    ELSE
    –Stack ist voll!
    RAISE_APPLICATION_ERROR(-20101, ‘Error! Stack overflow. ‘
    ||’limit for stacksize reached.’);
    END IF;
    END push;
    MEMBER PROCEDURE pop (n OUT INTEGER) IS
    BEGIN
    IF NOT empty
    THEN
    n := position(top);
    top := top -1; — take top element from stack
    ELSE
    –Stack ist leer!
    RAISE_APPLICATION_ERROR(-20102, ‘Error! Stack underflow. ‘
    ||’stack is empty.’);
    END IF;
    END pop;
    END;
    Now if i run this..i will be getting the following output...
    DECLARE
    stack intstack_o := intstack_o(NULL,NULL,NULL);
    a INTEGER;
    BEGIN
    stack.initialize;
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    stack.push(1111);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    stack.push(1112);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    stack.push(1113);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    stack.pop(a);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    dbms_output.put_line(a);
    stack.pop(a);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    dbms_output.put_line(a);
    stack.pop(a);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    dbms_output.put_line(a);
    stack.pop(a);
    dbms_output.put_line('Anzahl: ' || stack.getAnzahl);
    dbms_output.put_line(a);
    END;
    Output...
    Anzahl: 0
    Anzahl: 1
    Anzahl: 2
    Anzahl: 3
    Anzahl: 2
    1113
    Anzahl: 1
    1112
    Anzahl: 0
    1111
    Above is the Stack (Last In First Out) Implementations of integer array.Now my Requirement is Queue(First In First Out) Implementation of Integer array.

  • Document to find out the Object types

    Hi All,
    Can any one pls provide me the document where you have the list of all Object types defined in Oracle Applications.
    Thanks in Advance

    Hi,
    What object types you are referring to? Could you please elaborate more.
    Oracle Applications Developer Guide (and other main documents) can be found at:
    Applications Releases 11i and 12
    http://www.oracle.com/technology/documentation/applications.html
    Regards,
    Hussein

  • Invoking stored procedure that returns array(oracle object type) as output

    Hi,
    We have stored procedures which returns arrays(oracle type) as an output, can anyone shed some light on how to map those arrays using JPA annotations? I tried using jdbcTypeName but i was getting wrong type or argument error, your help is very much appreciated. Below is the code snippet.
    JPA Class:
    import java.io.Serializable;
    import java.sql.Array;
    import java.util.List;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import org.eclipse.persistence.annotations.Direction;
    import org.eclipse.persistence.annotations.NamedStoredProcedureQuery;
    import org.eclipse.persistence.annotations.StoredProcedureParameter;
    * The persistent class for the MessagePublish database table.
    @Entity
    @NamedStoredProcedureQuery(name="GetTeamMembersDetails",
         procedureName="team_emp_maintenance_pkg.get_user_team_roles",
         resultClass=TeamMembersDetails.class,
         returnsResultSet=true,
         parameters={  
         @StoredProcedureParameter(queryParameter="userId",name="I_USER_ID",direction=Direction.IN,type=Long.class),
         @StoredProcedureParameter(queryParameter="employeeId",name="I_EMPLOYEEID",direction=Direction.IN,type=Long.class),
         @StoredProcedureParameter(queryParameter="TEAMMEMBERSDETAILSOT",name="O_TEAM_ROLES",direction=Direction.OUT,jdbcTypeName="OBJ_TEAM_ROLES"),
         @StoredProcedureParameter(queryParameter="debugMode",name="I_DEBUGMODE",direction=Direction.IN,type=Long.class)
    public class TeamMembersDetails implements Serializable {
         private static final long serialVersionUID = 1L;
    @Id
         private long userId;
         private List<TeamMembersDetailsOT> teamMembersDetailsOT;
         public void setTeamMembersDetailsOT(List<TeamMembersDetailsOT> teamMembersDetailsOT) {
              this.teamMembersDetailsOT = teamMembersDetailsOT;
         public List<TeamMembersDetailsOT> getTeamMembersDetailsOT() {
              return teamMembersDetailsOT;
    Procedure
    PROCEDURE get_user_team_roles (
    i_user_id IN ue_user.user_id%TYPE
    , o_team_roles OUT OBJ_TEAM_ROLES_ARRAY
    , i_debugmode IN NUMBER :=0)
    AS
    OBJ_TEAM_ROLES_ARRAY contains create or replace TYPE OBJ_TEAM_ROLES_ARRAY AS TABLE OF OBJ_TEAM_ROLES;
    TeamMembersDetailsOT contains the same attributes defined in the OBJ_TEAM_ROLES.

    A few things.
    You are not using a JDBC Array type in your procedure, you are using a PLSQL TABLE type. An Array type would be a VARRAY in Oracle. EclipseLink supports both VARRAY and TABLE types, but TABLE types are more complex as Oracle JDBC does not support them, they must be wrapped in a corresponding VARRAY type. I assume your OBJ_TEAM_ROLES is also not an OBJECT TYPE but a PLSQL RECORD type, this has the same issue.
    Your procedure does not return a result set, so "returnsResultSet=true" should be "returnsResultSet=false".
    In general I would recommend you change your stored procedure to just return a select from a table using an OUT CURSOR, that is the easiest way to return data from an Oracle stored procedure.
    If you must use the PLSQL types, then you will need to create wrapper VARRAY and OBJECT TYPEs. In EclipseLink you must use a PLSQLStoredProcedureCall to access these using the code API, there is not annotation support. Or you could create your own wrapper stored procedure that converts the PLSQL types to OBJECT TYPEs, and call the wrapper stored procedure.
    To map to Oracle VARRAY and OBJECT TYPEs the JDBC Array and Struct types are used, these are supported using EclipseLink ObjectRelationalDataTypeDescriptor and mappings. These must be defined through the code API, as there is currently no annotation support.
    I could not find any good examples or doc on this, your best source of example is the EclipseLink test cases in SVN,
    http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/eclipselink.core.test/src/org/eclipse/persistence/testing/tests/plsql/
    http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/eclipselink.core.test/src/org/eclipse/persistence/testing/tests/customsqlstoredprocedures/
    James : http://www.eclipselink.org

Maybe you are looking for

  • Configure File Type Associations dosen't work for users

    Hi EB, Does anyones knows how to set the File Type Associations for users ? It works for me when i'm logged in as Admin but not as a user. When logged as user it always ask to configure the file associations when i open JDev and even with JDev open i

  • How to send as Delegate or on behalf of someone else

    We use to use an Exchange server and Entourage. This allowed us to use a delegate feature, which in essence allows an assistant to send a message on behalf of a manager using that managers email address. We have migrated our mail to a new, non exchan

  • LaCie and my FireWire 400 port

    While I can connect my PowerBook to my LaCie 500GB HDD thru FireWire 800, establishing connection thru FireWire 400 always results in failure. Why?

  • PartII Registers are not updated for J1IS

    Hi All, Please help me to know, why there is no update for part II registers for Invoice for MRDY type , which was done through J1IS.Please help to configure these things Example: Returns PO  Created ME21N Goods posted :MIGO with Movt 161 Part I upda

  • Take a look

    be nice please. honest, but nice. First attempt, however fully functional www.edocwarehouse.com