Container to Container binding in Workflow binding editor

Hi all,
I have an issue using Container --> Container binding in the Workflow binding editor (transaction SWF_BAM). What I want to do is to be able to extend the data provided by the event (i.e call a BAPI using values supplied) before assigning it to the target structure.
This is what I have done:
- Created an entry in Event Linkage: Application Object to Message Proxy, where the object type is BUS2005 (event RELEASED)
and proxy is a generated proxy.
- In the binding editor, I clicked in the Binding Instruction selection and chose Container --> Container as Binding Instruction.
Now I have created my own class that implements the interface IF_SWF_IFS_BIND_TRANSFORM_CONT, so this class shows up in the drop down list under a section called Enhancement.
- The class I created and implemented the interface, now contains three methods, where Transform is one. I have put a break point in this method and when I trigger the event (transaction SWUE) the debugger stops. So, the call to the method works fine.
My problem is, that I cannot access the values provided by the event (these are supplied in parameter SOURCE_CONTAINER).
Is there anyone who have used this technique and could supply some example code? Is there another technique that I can use to obtain the same result?
Best regards
Patrik Donaldson

Hi to the both of you!
Thanks for you answer. I will try to elaborate.
My scenario is as follows. I want to react on the event CHANGED, of business object BUS2032 (SalesOrder). The information (field values) supplied by the container under EVTOBJECT (in the binding editor) does not fully correspond to what I need to populate in the receiver interface. I would like to send out i.e SalesOrderNumber and PricingProcedure to the receiver interface.
Now, SalesOrderNumber is supplied by the container (_EVT_OBJECT-SalesDocument, as seen in the binding editor), but hte PricingProcedure would have to be looked up in table VBAK using SalesOrderNumber as a key.
Issue 1: How do I get hold of the value of field SalesDocument in my class? (as I mentioned earlier I have created a class which references interface IF_SWF_IFS_BIND_TRANSFORM_CONT, so I have the transform method and I can put code there. I have put a break point, so I know processing stops there).
I tried to following:
CALL METHOD source_container->if_swf_ifs_parameter_container~get(
        EXPORTING
          name = 'SALESDOCUMENT'
        IMPORTING
          value = l_vbeln ).
No, success (cx_swf_cnt_elem_not_found). Makes me think that SalesDocument is not a parameter of the event but something else.
Issue 2: Once I have solved issue 1 and also lookup up the PricingProcedure. How do I go about setting my values in the receiver interface. I know I also have a reference to TARGET_CONTAINER in the TRANSFORM method, but where to go from there?
Any clues would be grately appreciated. Being successful with this scenario, would open for many interesting possibilities.
Best regards
Patrik Donaldson

Similar Messages

  • Workflow Binding ...Gurus help me !!

    I am creating my first workflow for LIKP object . I linked the event CHANGED of LIKP object with my workflow in SWETYPV transaction .
    Now , when i try to create the binding in the workflow headed with the LIKP object , I see the Delivery object in the event container but not in the Workflow container ...??
    Is there any other activation/setting required for binding or event level ?

    Hi,
    You need to bind the event object to the object element in the WF container. You can do this with txn PFTC. Go to the triggering events tab, select the event and click on the binding editor button. If you define event linkage from the above transaction, system can automatically perform the binding for the event object and event creator. You can also activate the linkage from here.
    Cheers,
    Ramki.

  • Error: Binding from workflow to workitem aborted

    Hi ,
    I am getting an error in binding which I am not able to resolve. Let me try to explain the scenario first.
    1) In the workflow a container element is existing with the name ZBUS2081 which is having reference to object type BUS2081.
    2) BUS2081 is having an <b>attribute</b> "Company code" which is again having reference to object type BUS0002. BUS0002 has a key field "CompanyCodeId" which is having reference to database table T001-BUKRS.
    3) In a particular step of the workflow there is a binding between ZBUS2081.Companycode.CompanyCodeId ->CCODE where CCODE is a task container element having dictionary reference T001-BUKRS.
    4) When the workflow is executing it is giving error in this particular step. The error description are "Binding from workflow to workitem aborted"         "ZBUS2081.Companycode.CompanycodeId of binding assignment is not available    " Error when determining attribute COMPANYCODE of object"
    5) When I check the container in the technical details I see that ZBUS2081.Companycode.CompanycodeId is set to a value. I also checked the corresponding database table for the invoice document and found that this value is existing.
    Can anybody please help me on this as to why this binding error is occuring?
    Thanks in advance,
    Abhishek

    Hi Kjetil,
    the workflow started when a document is parked. Its triggering event is BUS2081-Parked. Even I was thinking in the same lines that may be the workflow is trying to access database information which has not been updated at that moment.
    When I checked the attribute Companycode of object BUS2081 I even found that the source is set to "Database field" and not "Virtual".
    But when I check the workflow container ZBUS2081.Companycode.CompanycodeId is having the correct value. This means the data <b>has</b> been fetched correctly from the database.
    Hence I feel if we cannot use an attribute with object reference directly in the binding, rather use a container operation to assign the value to another workflow container element and then use this element in the binding.
    Any inputs from any body to confirm this are welcome.
    regards,
    Abhishek

  • Workflow Binding

    I am creating my first workflow for LIKP object . I linked the event CHANGED of LIKP object with my workflow in SWETYPV transaction .
    when i try to create the binding in the workflow headed with the LIKP object , I see the Delivery object in the event container but not in the Workflow container ...??

    when u wanna pass element from event to workflow, u must set the element of workflow as import parameter.....
    I hope it can help you man:)

  • Workflow binding not working - authorization problem?

    Hi Experts,
    I have the following problem in 4.6C that happens only for a specific user, so maybe an authorization problem.
    There is a task in the workflow that calls a method with ME21N. The method takes the PO after the transaction call, creates a BUS2012 object from it and passes it to the task. The task then passes it back to the workflow. The next step of the workflow uses this PO object.
    For this specific user, the ME21N method executes fine, PO is created. The task container in the wf log shows the object in it. But the workflow container does not have it, so it was not passed from the task to the workflow. Hence, the next task that uses the object does not start but the workflow system raises an error:
    OL 808: Object with runtime number '0' not defined
    WFEA 031: Step 0000000058 of WS********: Binding from workflow to work item aborted
    This happens only for one specific user, everyone else can execute the tasks without a problem, the PO object is passed to the workflow.
    Is there a specific authorization object required for the bindings of the workflow to work correctly?
    Any help is appreciated.
    Regards,
    Krisz

    Hello,
    You can check for authorization problems in SU53.
    Did this suddenly start happening for this user, since when? I'd doublecheck that binding.
    regards
    Rick Bakker
    Hanabi Technology

  • Binding from workflow to work item aborted

    Hi,
    In my workflow  the first two steps are  multi condition.
    after my second condition  i have created activity   step   - Task   and  binding the  bapi attribute value.
    i checked binding  no error.
    I am getting error in this part.
    The error is
    Workflow 'TEST' step number 1039: work item could not be created                          
    Source (expression '&PurchaseRequisition.Zvalue&') of binding assignment is not available   
    Error in the evaluation of expression '&PurchaseRequisition<???>.Zvalue&' for item '20'     
    Step 15 of WS23000111: Binding from workflow to work item aborted                               
    Error when determining attribute 'Zvalue' of object instance '[BO.BUS2105.001039]'   
    Step 15 of WS23000111: Binding from workflow to work item aborted
    Message no. WFEA031
    Diagnosis
    Serious errors have occurred in the binding from workflow to work item in step 15 of multistep task WS23000111. As a consequence, workflow 1039 has been forced into error status.
    Procedure
    "Change Workflow Container" then "Restart After Error" may suffice. It is probable, however, that the binding definition in WS23000111, step 15will have to be changed.
    pl help me to proceed further.
    Thnks in advance.
    sharma

    Hi,
    Seems that your custom BOR is not delegated to the supertype, please do the same in SWO6 and
    also check the binding from event to workflow.
    Thanks and Regards,
    Swaminathan

  • How to perform binding in workflow?

    Hi all,
    Please tell me what are types of binding in workflow?
    and how we perform binding to transfer data from event->workflow,workflow->task etc and
    how i know which container elements are passed in binding?
    Regards,
    Arpita.

    Welcome to the world of WORKFLOWS
    binding to transfer data from event->workflow,workflow->task etc and
    how i know which container elements are passed in binding?
    You can perform Binding event to workflow from the BASIC DATA (CTRL + F8) of the workflow   hee in the version independent tab you can see a tab START EVENTS here under this tab you will mention the BO ( Business Object Name) and EVENT that for which you want to trigger the workflow  here you will do the binding between WORKFLOW AND EVENT conatiners.
    check this [link|http://help.sap.com/saphelp_nw04/helpdata/en/c5/e4b0ae453d11d189430000e829fbbd/content.htm]
    Even you can send the values from the ABAP program to the workflow conatiner by using the various FM
    Search SE37 by using SAP_WAPI_*

  • What is workflow binding

    hi gurus
    i am new to workflow could you pls explain me
    what i workflow binding?

    Hi kittu,
    Binding is the process of associating values from one containers to another container. Like from event container to wf container, wf container to task container, task container to method container and so.
    Just go thru this tutorials,
    http://help.sap.com/saphelp_40b/helpdata/en/04/926f8546f311d189470000e829fbbd/frameset.htm
    http://help.sap.com/erp2005_ehp_03/helpdata/EN/9b/572614f6ca11d1952e0000e82dec10/frameset.htm
    http://help.sap.com/erp2005_ehp_01/helpdata/en/04/928cbd46f311d189470000e829fbbd/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/fb/135962457311d189440000e829fbbd/content.htm
    http://help.sap.com/saphelp_nw70/helpdata/en/c5/e4aec8453d11d189430000e829fbbd/content.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/04/928c6246f311d189470000e829fbbd/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/a0/28e937a5caba6ee10000009b38f842/frameset.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/wf%2btransactions
    http://erpgenie.com/index.php?option=com_content&task=view&id=449&Itemid=77
    http://www.****************/Tutorials/Workflow/
    Regards,
    sheron

  • Workflow- Sub Workflow Binding

    I am trying to Bind the Workflow to The SubWorkflow Task.
    But when i do the binding i donot see the Business Object and other containers of my subworkflow .In the Subworkflow i have created a task also how do i bind it to the task of the sub workflow

    Hi,
    This seems that you have not linked it to the business object event or in the task you are not using the Business Object and its method.
    Go to the header part of the Workflow and give the (its an example)
    BO BUS2012 Releasestepcreated
    and activate it as well as generate the binding.
    Try this if the problem persists, you can mail me at [email protected]
    Regards,
    Aman

  • Import Form Container - WF Container (HCM P&F)

    Dear Expert,
    Now I created workflow by using standard task is TS17900110 (Import
    Form Container -> WF Container).The task can get value from HCM form
    container to WF Container but maximum fields are only three import
    parameters.I need to know is it posible to import value more than three
    fields, suggest us for new task or other ways to work on this scenario.
    I already posted this problem on SDN forum and wait for solution. On
    this way I sent message to you about this and expect for your
    suggestion.
    Best regards,
    Wasan Doungkhum

    Dear Barin,
    Thank for your reply.
    But I meaning TS17900110 it is standard task SAP provided. SAP provide three field parameter in that task.I need more than three field for get value from HCM form to WF Container.
    Do you understand my question?
    Wasan Dougmkhum.

  • Java.awt.Container.add(Container.java:345) how can i handle this

    dear all,
    i want to design an outlook for a chat applet. but this seems to tough as i am getting a run time error
    my code is:
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import javax.swing.*;
    * the import that are required for this class
    public class outer extends Frame //implements ActionListener, Runnable
    private TextField txtusername,txtpassword,txtroomname;
    private Label lblusername,lblpassword,lblroomname,lbllistofrooms;
    Button okBtn,exitBut;
    Color backColor=null,btnBackClr=null,btnForeClr=null;
    String[] roomsavailable = {" one ", " two ", " three", " four"};
    private JList rooms = new JList(roomsavailable);
    /** the costructor*/
    public outer()
    { // super(st);
    backColor=new Color(200,200,255);
    btnBackClr=new Color(225,240,255);
    btnForeClr=new Color(205,205,205);
    setBackground(backColor);
    setLayout(null);
    lblusername = new Label("Username");
    lblusername.reshape(insets().left+5,insets().top+10,60,20);
    add(lblusername);
    txtusername=new TextField();
    txtusername.reshape(insets().left+75,insets().top+10,60,20);
    add(txtusername);
    lblpassword = new Label("Password");
    lblpassword.reshape(insets().left+5,insets().top+30,60,20);
    add(lblpassword);
    txtpassword=new TextField();
    txtpassword.reshape(insets().left+75,insets().top+30,60,20);
    add(txtpassword);
    lblroomname = new Label("Select Room");
    lblroomname.reshape(insets().left+5,insets().top+50,60,20);
    add(lblroomname);
    txtroomname=new TextField();
    txtroomname.reshape(insets().left+75,insets().top+50,60,20);
    add(txtroomname);
    okBtn=new Button("Login");
    okBtn.reshape(insets().left+25,insets().top+80,60,20);
    add(okBtn);
    // okBtn.addActionListener(this);
    exitBut=new Button("EXIT");
    exitBut.reshape(insets().left+50,insets().top+80,60,20);
    add(exitBut);
    // exitBut.addActionListener(this);
    public static void main(String[] args)
    // Create a JFrame
    JFrame frame = new JFrame("client side");
    // Create a outer class object
    outer outerobj = new outer();
    // Add the outer to the JFrame
    frame.getContentPane().add(outerobj, BorderLayout.WEST);
    // Set Jframe size
    frame.setSize(800, 400);
    //set resizable true
    frame.setResizable(true);
    // Set JFrame to visible
    frame.setVisible(true);
    // set the close operation so that the Application terminates when closed
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    when i compile it it compiles but gives run time error like this
    RUN TIME error:
    Exception in thread "main" java.lang.IllegalArgumentException: adding a window
    to a container
    at java.awt.Container.addImpl(Container.java:434)
    at java.awt.Container.add(Container.java:345)
    at outer.main(outer.java:75)
    Press any key to continue...
    i know erroe in this line
    frame.getContentPane().add(outerobj, BorderLayout.WEST);
    but how shall i add to get the proper layout by getting benifit of insets method
    reply soon
    please

    You can't add a frame to a frame.
    Try chaing the class definition from
    public class outer extends Frameto
    public class outer extends PanelPlease note to format your code (you'll get a faster response) use [ code]
    Object names should always start with a capital letter. outer --> Outer

  • Getting "Ordinal binding and Named binding cannot be combined" error

    Hello,
    I am getting following exception while calling stored produre:
    *"Ordinal binding and Named binding cannot be combined"*
    I am calling stored procedure with JDBC with 1 input parameter and 1 output parameters as mentioned below:
    CallableStatement collableStat = connection.prepareCall("{ call sp_clnt_intermed_validation(?,?) };
    // Registering In parameters          
    collableStat.setString("p_user_name", "SampleUser");                              
    // Registering Out parameters
    for(String paramKey : paramKeysSet) {                                   
    collableStat.registerOutParameter("p_success_flag", Types.VARCHAR);
    // execute stored procedure
    collableStat.execute();
    Please guide.
    Regards,
    Akshay.
    Edited by: 914678 on Feb 15, 2012 5:48 AM

    Why is the registerOutParameter in a loop?
    You don't state your DB version but as of 10g there is no support for named parameters for a PL/SQL function because there is no 'name' of the returned parameter. So use ordinal indexes for both parameters.
    Instead of
    collableStat.setString("p_user_name", "SampleUser");
    collableStat.registerOutParameter("p_success_flag", Types.VARCHAR);use
    collableStat.setString(1, "SampleUser");
    collableStat.registerOutParameter(2, Types.VARCHAR);Next time post this in the JDBC forum.
    Edited by: rp0428 on Feb 15, 2012 11:48 AM

  • Difference between Property binding, Aggregation Binding and Element binding?

    what is difference between Property binding, Aggregation Binding and Element binding?

    HI Rajesh,
    Firstly ,
    A binding path can either be absolute (starting with a slash), or relative (starting with a name token)
    1. Element Binding:
    Here we specify the refrenced object.
    eg if you bind company object to a layout, like
    var oMatrixLayout = new sap.ui.commons.layout.MatrixLayout();
    oMatrixLayout.bindElement("/company");
    then all the children of this layout can refer to the context of this object. like suppose company has name attribute, then we can directly pass it to the child like:
    oMatrixLayout.createRow(
    new sap.ui.commons.Label({text: "Name:"}),
    new sap.ui.commons.TextField({value: "{name}"})
    All the relative bindings within the control and all of its children are resolved relatively
    2. Property binding is similar to the context mapping in WebdnyPro. We bind it to a property of the UI. It is automatically updated when its vlaue is changed.
    3. Aggregation binding (basically a list) defines a template(a model which others can copy) and this template is cloned for each entry of the list. When we make an entry in the list, a clone of the template is created.When the clone is created, the context is set to the entry in the list. Thus all the binding to the template are resolved relative to the entry. This is maily used for large data sets where we will only clone the current entry and not the complete list.
    Regards,
    Nikhil

  • Difference between Docking container & Custom container?

    What is the difference between Docking container & Custom container?
    Where we use docking container??
    Cheers
    Kunu
    Moderator Message : Interview type questions are not allowed. Search for available information before posting. Thread locked.
    Edited by: Vinod Kumar on May 19, 2011 11:18 AM

    What is the difference between Docking container & Custom container?
    Where we use docking container??
    Cheers
    Kunu
    Moderator Message : Interview type questions are not allowed. Search for available information before posting. Thread locked.
    Edited by: Vinod Kumar on May 19, 2011 11:18 AM

  • Wat is early binding and late binding

    1)Class A {
    Public void amethod(){
    System.out.println(�amethod�);
    class B extends A{
    public static void main(String args[]){
    B b = new B();
    b.amethod();
    if I run amethod will be printed on the console;
    in the class A if i replace public class with private modifier;then I don�t compile class B and I run directly what will happen?
    What is late binding and early binding?

    What is late binding and early binding?Suppose you have two objects iA and sB, where iA is an Integer object and sB is a String object. If you were to assign them to one another, this would result in a compile time error. This is because the compiler checks if the objects 'bind' with each other. This is early binding.
    Take another case where you have two custom objects (A & B) implementing the same interface. you pass an one of the objects (say A) to a method which accepts the implemented interface as a parameter and try to work with it as if it were to be the other (ie B) the compiler passes this since syntactically this is correct. But when it comes to runtime, the runtime env will get to know that this is illegal and throws an exception. This is a typical case of late binding.

Maybe you are looking for

  • Idoc/ Function module to create a Licence in GTS

    Dear experts,   I have a situation where in I need to create Licence in GTS system based on the information from a 3rd party system. So, Is there any inbound idoc in GTS system to automatically create the licence (I'm using middle ware to convert the

  • Threads Getting Deleted

    Yesterday one person had a topic talking about not getting answers because people in this forum would turn most threads into personal chats... I dont know what happened later but as I left it was a fair defendable discussion. Today, it has been delet

  • Everytime I restart my comp, Firefox loses all my settings, passwords, and history, but keeps the bookmarks

    I have Win XP SP3, and for about the last 4 days, every time I restart my computer, or go 14 or so hours between browsing if I leave the thing on, Firefox basically restarts like its out of the box (so to speak). It re-installs all of my plugins, put

  • How to load webpage in app ?

    Hi guys. Is it possible to load the web page in app ? Now I am using below code to load the web page: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.webside.com"]]; But this code leaves the application process. How to ma

  • Will Apple one day support AE plug ins on Intel Macs?

    Hi, I was interested in upgrading my G5 to the new Mac Pro until I discovered from Apple's release notes that Apple had dropped support for the After Effects plug ins in FCP 5.1 for Intel! I need my plug ins, so I'll stay on PPC for a while it seems.