Programmatically creating a Rendezvous : missing variable in Result container

Hi everybody,
For my tests purpose, I need to programmatically create a sequence. In this sequence, I need to insert Rendezvous steps.
Everything works fine when creating them, but when I execute the sequence / steps created this error always show up for rendezvous step : 
Unknown variable 'TimeoutOccured' ; Error accessing item 'Result.TimeoutOccured'
According to the TS help, this variable should be created when I configure the step for the rendezvous operation. Drag and dropping the step from the TS insertion palette works fine, and the variable is created when chosing the operation 'rendezvous'. But when doing the same thing through programmation, the variable is not created.
Here are the steps executed to create the RDV step :
I create a new step using method Engine.NewStep
I set the step name using Step.Name
I set the rendezvous properties using a statement (Parameters.BranchesRendezVous.RDVStep is the variable holding the the step reference) :
Parameters.BranchesRendezVous.RDVStep.AsStep.Operation = 1, //A value that specifies the operation for the step to perform. The valid values are 0 = Create, 1 = Rendezvous, and 2 = Get Status
Parameters.BranchesRendezVous.RDVStep.AsStep.NameOrRefExpr = Parameters.BranchesRendezVous.RefName, //Contains the Rendezvous Name expression for the Create operation and the Rendezvous Name or Reference expression for all other Rendezvous operations
Parameters.BranchesRendezVous.RDVStep.AsStep.TimeoutEnabled = False, //The Timeout Enabled setting for the Rendezvous operation
Parameters.BranchesRendezVous.RDVStep.AsStep.ErrorOnTimeout = True, //The Timeout Causes Run-Time Error setting for the Rendezvous operation
Parameters.BranchesRendezVous.RDVStep.AsStep.RendezvousCountExpr = Parameters.NbBranches, //The Number of Threads Per Rendezvous expression for the Create operation
Parameters.BranchesRendezVous.RDVStep.AsStep.Lifetime = 3, //A value that specifies the Lifetime setting to use for the Create operation. The valid values are 0 = Same as Sequence, 1 = Same as Thread, 2 = Use Object Reference, and 3 = Same as Execution
4. Then I insert the step in my current sequence using method Sequence.InsertStep
Everything works fine, the rendezvous step is perfectly created and all properties are set finely. However, the variable TimeouOccured is missing in the Step.Result container (TS help says that this propoerty exists when the step is configured as a rendezvous operation (cf. Operation = 1)).
Am I doing something wrong somewhere ? Why is this variable missing ?
Solved!
Go to Solution.

Hi Doug,
TS help says that this property exists when the step is configured as a rendezvous operation (cf. Operation = 1)... So shouldn't it be created when I create / insert the step ?
I find it very weired to add a subproperty to a StepType, in the Result container...

Similar Messages

  • Data Logging a programmatically created shared variable of cluster or array datatype into citadel DB

    Hi,
    Is there a way to log a programmatically created shared variable of cluster or array datatype into citadel DB?
    I have attempted to programmatically create a shared variable of type 'double' and was able to successfully log the same into Citadel DB. In the attachment, Please refer to the attached project SV_TC.lvproj and specifically to SV_W.vi for the code that i have used (W.png file shows the dB in MAX and shared variable in NI Distributed System Manager)
    However when i tried the same approach to create a shared variable 'array of double', i noticed that traces are not getting created and hence data logging isn't happening into the Citadel DB. I was however able to write and read the shared variable array without issues. The same is true with cluster datatype also. Please refer to SN_NW.vi for the code that i have used - only difference from SV_W.vi is that i have tried to create a shared variable of type 'array of double'
    One observation is that if i create an 'array of double' or cluster in a shared variable library using the project explorer and deploy, i could see that these being logged into Citadel DB.
    Hence i want to understand what could be done to achieve the same programmatically? Could you please advice?
    Regards,
    Sridhar
    Attachments:
    SV_TC.zip ‏3925 KB

    Why is the transaction happening over remote?
    Because we need the information to be on our database immediately when they submit it.
    I don't know anything about streams or replication.....
    The web database is run by the company that hosts our web site. We use PL/SQL to show the pages and output the html. It fetches the data the customer is requesting from our database, but I'm struggling to get the best way to insert into our database from there.

  • How can I programmatically create and use a global variable?

    I have an app where the number of AI DAQmx tasks I create are specified in a config file.  I have a monitor task that periodically looks at the latest values from all DAQ tasks.  I've been doing this with a set of global variables because it was the simplest way to do it.  But to do this, I have to explicitly create a separate AI task that uses the hard-coded global variable name for the DAQmx samples.  I would prefer to only write one VI for the DAQ loop that writes to a global variable that I programmatically create based on the config file.  The only solution I can think of is to use a global variable "pool" that is sized bigger than I expect to need, and then have a big switch case to select which one I want based on the task index.  But this sounds pretty silly.

    I tend to agree with Ben. I don't buy the concept of taking the asy way out (globals) because it very rarely will things remain static. You almost always have to extend the features and functionality of an application and then you will run into issues with sloppy and lazy implementations. The solutions offered may require a little time to learn but once you do it doesn't really require any extra effort.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • Posting Document not created (export data missing)

    We are working on ECC 6.0 and during creation of Cancellation Billing document type IVS for the Intercompany billing, the document did not create Accounting document giving the Posting status as G - Posting document not created (export data missing). However checked the Foreign trade data and the system states that Foreign trade is complete.
    Can any one suggest the solution for this?
    Thanks.

    Hello Mohammad,
    About this issue, the incompletion of this cancellation document
    arises might because the reference delivery has been archived/deleted.
    This is likely due to your current copy control settings (VTFL).
    If you have set ' ', in the export determination field this means that
    there is a common 'exnum' key between the delivery and billing documents
    LIKP-EXNUM & VBRK-EXNUM are the same.
    The result of deleting the delivery is that you also delete the FT data
    for the delivery, Because the billing document and delivery share the
    same foreign trade table entries, you have in effect deleted the FT data
    of the billing document too. This would most likely go unnoticed but if
    you then cancel the invoice the system has no FT to copy into the new
    cancellation billing document, which leads to this issue.
    Firstly you should set the export determination flag in the copy control
    of the delivery & billing documents. This will avoid this issue in the
    future. Set it to to 'A' or 'B' depending on your requirements.
    For the incomplete cancellation billing document, you could use userexit to
    set it as complete:
    You can use transaction CMOD.
    Create a project for example FT project button create short text: ....
    drop button Enhancement assignment & save use for example local object.
    Use the F4-help for Enhancement and look for V50EPROP.
    Drop button Components:
    here you will find EXIT_SAPLV50E_005 and EXIT_SAPLV50E_006
    In the userexits doubleclick on the includes ZXV50U05 and ZXV50U06
    The coding in the userexits should be: C_COMPLETE = 'X'.
    Afterwards activate generate ... and save.
    The development class is VEI.
    Please also check note 118573 which explains the FT user exits.
    Regards,
    Alex

  • How do I programmatically create and save an empty project?

    I can programmatically create an empty project, but when I drop an
    invoke node on the project, select "Save", and wire in the desired
    path, it results in an "Error 1".  I am getting the error on the "Save"
    invoke node (An input parameter is invalid.)  The only input is the
    path, which is correct.  What am I doing wrong?  Also, how can I
    specify a name for the project?
    Greg

    I think the problem is that you use the current path and strip off the path the current VI's name.  This leaves you with a path that has no filename to save it to.  Put in a build path after it where you build in a project name with a .lvproj extension.  When I did that, the error went away.
    Message Edited by Ravens Fan on 08-08-2007 11:36 PM
    Attachments:
    Create%20and%20Save%20New%20Project[1].png ‏4 KB

  • BPEL Process returns "empty variable/expression result."

    Hi,
    I have an Asynchronous BPEL Process which uses a DB Adapter (which in turn uses a custom SQL Procedure) to insert a value in to a table and return a sequence value generated in the procedure back to the BPEL Process. The process inserts the value in to the table but the sequence is not returned back and i get the below error,
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    <part name="summary">
    <summary>
    empty variable/expression result.
    xpath variable/expression expression "/ns2:OutputParameters/ns2:X_NO" is empty at line 94, when attempting reading/copying it.
    Please make sure the variable/expression result "/ns2:OutputParameters/ns2:X_NO" is not empty.
    </summary>
    </part>
    </selectionFailure>
    If i see the process flow the invoke activity shows the sequence value is returned from the procedure but when the invoke activity passes that value to the Assign activity its lost and the above error is displayed.
    The details i see in Invoke activity is below,
    <messages>
    <Invoke_1_DBProcWrite_InputVariable>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    <InputParameters
    xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/SUR_NEW_BPEL_PROC/">
    <P_NAME>Vivek</P_NAME>
    </InputParameters>
    </part>
    </Invoke_1_DBProcWrite_InputVariable>
    <Invoke_1_DBProcWrite_OutputVariable>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="OutputParameters">
    <db:OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/SUR_NEW_BPEL_PROC/">
    <X_NO>9</X_NO>
    </db:OutputParameters>
    </part>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="response-headers">[]</part>
    </Invoke_1_DBProcWrite_OutputVariable>
    </messages>
    I use Jdeveloper version 10.1.3.3.0.4157. I did not recieve this error in Jdeveloper 10.1.3.1.
    Please let me know how to resolve this issue.
    Regards, Suresh

    I have exactly the same problem!!!! I would appreciate someone from Product or other to explain why I can see the incoming variable being created but when XPath expression is attempted to extract a value so I can do an assignment I get a "empty variable/expression result".
    Using JDEV10.1.3.3 and SOA 10.1.3.3 advanced install. My process is receiving a R12 Business Event listed here:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <WF_EVENT_T xmlns="http://xmlns.oracle.com/xdb/APPS/BES_EVENT/BES_EVENT">
    <PRIORITY xmlns="">50</PRIORITY>
    <SEND_DATE xmlns="">2008-04-30T13:40:33.000-05:00</SEND_DATE>
    <RECEIVE_DATE xmlns="">2008-04-30T13:40:40.000-05:00</RECEIVE_DATE>
    <CORRELATION_ID xmlns="" />
    - <PARAMETER_LIST xmlns="">
    - <PARAMETER_LIST_ITEM>
    <NAME>BO_ID</NAME>
    <VALUE>123456</VALUE>
    </PARAMETER_LIST_ITEM>
    - <PARAMETER_LIST_ITEM>
    <NAME>#CURRENT_PHASE</NAME>
    <VALUE>201</VALUE>
    </PARAMETER_LIST_ITEM>
    </PARAMETER_LIST>
    <EVENT_NAME xmlns="">oracle.apps.ar.hz.PersonBO.create</EVENT_NAME>
    <EVENT_KEY xmlns="">777666</EVENT_KEY>
    <EVENT_DATA xmlns="" />
    - <FROM_AGENT xmlns="">
    <NAME>WF_BPEL_QAGENT</NAME>
    <SYSTEM>VIS12.US.ORACLE.COM</SYSTEM>
    </FROM_AGENT>
    <TO_AGENT xmlns="" />
    <ERROR_SUBSCRIPTION xmlns="">TBo0FQQPy6ngQKjAuQAXWA==</ERROR_SUBSCRIPTION>
    <ERROR_MESSAGE xmlns="" />
    <ERROR_STACK xmlns="" />
    </WF_EVENT_T>

  • Re:- XMII is there a way todynamically create local or transaction variable

    Dear all,
    Is there a way to create local or transaction variable dynamically inside the BLS transactions.
    I have a scenario where in i am reading the XMl document and based on the number of node (sub node ) items i need to temporary save those values into transaction variable .  I want to use these saved transaction variable tvalues o later insert into database

    After reading your second post, I wonder why you want to temporarily store the separate values from the XML node in a local property.
    If you already have all values available in a XML, than it would be easier to process the XML directly in MII, as that is what MII does best. MII can directly access the node values and use it as input for your databse inserts. Using a repeater action, you can process 0 to n nodes. Use XPath to transfer the node values to the query parameters.
    Is this the option you are looking for, or do I miss something?
    Michael

  • Error: empty variable/expression result

    Hi ,
    I am following the examples and initiating a bpel process(not the process given in the examples) through java. But when I execute the java code, I get the following error:
    com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.
    xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {null}
    parts: {{summary=<summary>empty variable/expression result.
    xpath variable/expression expression "/client:helloProcessRequest/client:name" i
    s empty at line 30, when attempting reading/copying it.
    Please make sure the variable/expression result "/client:helloProcessRequest/cli
    ent:name" is not empty.
    </summary>}}
    com.oracle.bpel.client.delivery.ReceiveTimeOutException: Waiting for response has timed out. The conversation id is null. Please check the process instance for detail.
    I am sending the variable in the string with the following code:
    String xml = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><SOAP-ENV:Body><m:helloProcessRequest xmlns:m=\"http://xmlns.oracle.com/hello\"><m:name>revanth</m:name></m:helloProcessRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>";
    Locator locator = new Locator("default","bpel",props);
    IDeliveryService deliveryService = (IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
    // construct the normalized message and send to collaxa server
    NormalizedMessage nm = new NormalizedMessage( );
    nm.addPart("payload", xml );
    NormalizedMessage res = deliveryService.request("hello", "process", nm);
    Map payload = res.getPayload();
    Can anybody please tell me what is missing here?
    Appreciate your help.
    Thank you,
    Revanth

    Got it. Was sending the wrong string. Needed to send only the varaible and not the soap envelope. just for information, i had to send this string:
    String xml = "<m:helloProcessRequest xmlns:m=\"http://xmlns.oracle.com/hello\"><m:name>revanth</m:name></m:helloProcessRequest>";
    Sorry for any trouble.
    Rev

  • Programmatically create array from common cluster items inside array of clusters

    I have seen many questions and responses on dealing with arrays of clusters, but none that discuss quite what I am looking for. I am trying to programmatically create an array from common cluster items inside array of clusters. I have a working solution but looking for a cleaner approach.  I have an array of clusters representing channels of data.  Each cluster contains a mixture of control data types, i.e.. names, types, range, values, units, etc. The entire cluster is a typedef made up of other typedefs such as the type, range and units and native controls like numeric and boolean. One array is a “block” or module. One cluster is a channel of data. I wrote a small vi to extract all the data with the same units and “pipe” them into another array so that I can process all the data from all the channels of the same units together.  It consists of a loop to iterate through the array, in which there is an unbundle by name and a case structure with a case for each unit.  Within a specific case, there is a build array for that unit and all the other non-relevant shift registers pass through.  As you can see from the attached snapshots, the effort to add an additional unit grows as each non-relevant case must be wired through.  It is important to note that there is no default case.  My question:  Is there a cleaner, more efficient and elegant way to do this?
    Thanks in advance!
    Solved!
    Go to Solution.
    Attachments:
    NI_Chan units to array_1.png ‏35 KB
    NI_Chan units to array_2.png ‏50 KB

    nathand wrote:
    Your comments made me curious, so I put together a quick test. Maybe there's an error in the code (below as a snippet, and attached as a VI) or maybe it's been fixed in LabVIEW 2013, but I'm consistently getting faster times from the IPE (2-3 ms versus 5-6ms for unbundle/index). See if you get the same results. For fun I flipped the order of the test and got the same results (this is why the snippet and the VI execute the tests in opposite order).
    This seems like a poster child for using the IPES!  We can look at the index array + replace subset and recognize that it is in place, but the compiler is not so clever (yet!).  The bundle/unbundle is a well-known "magic pattern" so it should be roughly equivalent to the IPES, with a tiny penalty due to overhead.
    Replace only the array operation with an IPES and leave the bundle/unbundle alone and I wager the times will be roughly the same as using the nested IPES.  Maybe even a slight lean toward the magic pattern now if I recall correctly.
    If you instantly recognize all combinations which the compiler will optimize and not optimize, or you want to exhaustively benchmark all of your code then pick and choose between the two to avoid the slight overhead.  Otherwise I think the IPES looks better, at best works MUCH better, and at worst works ever-so-slightly worse.  And as a not-so-gentle reminder to all:  if you really care about performance at this level of detail: TURN OFF DEBUGGING!

  • Create records for missing periods in transformation

    I need to create some routine that creates fical periods missing with 0,00 as value in de key figure and the characteristics remain the same. It is possible to create in the transformation something like this? Should put it in the initial routine or in the end one?
    Source
    Company 1; Account 1; Fiscper 012009; KF 345 Eur
    Company 1; Account 1; Fiscper 032009; KF 123 Eur
    Company 1; Account 1; Fiscper 062009; KF 678 Eur
    Company 1; Account 2; Fiscper 012009; KF 987 Eur
    Final destination
    Company 1; Account 1; Fiscper 01.2009; KF 345 Eur
    Company 1; Account 1; Fiscper 02.2009; KF 0 Eur
    Company 1; Account 1; Fiscper 03.2009; KF 123 Eur
    Company 1; Account 1; Fiscper 04.2009; KF 0 Eur
    Company 1; Account 1; Fiscper 05.2009; KF 0 Eur
    Company 1; Account 1; Fiscper 06.2009; KF 678 Eur
    Company 1; Account 1; Fiscper 07.2009; KF 0 Eur
    Company 1; Account 2; Fiscper 01.2009; KF 987 Eur

    you are right, that's what I'm afraid of.
    I already have a end routine:
    PROGRAM trans_routine.
    *       CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    *  Attributs
        DATA:
          p_check_master_data_exist
                TYPE RSODSOCHECKONLY READ-ONLY,
    *-    Instance for getting request runtime attributs;
    *     Available information: Refer to methods of
    *     interface 'if_rsbk_request_admintab_view'
          p_r_request
                TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
      PRIVATE SECTION.
        TYPE-POOLS: rsd, rstr.
    *   Rule specific types
        TYPES:
          BEGIN OF _ty_s_TG_1,
    *      InfoObject: ZIGCHENTI Magn_ci - Entity.
            /BIC/ZIGCHENTI           TYPE /BIC/OIZIGCHENTI,
    *      InfoObject: ZIGCHPART Magn_ci - Partner.
            /BIC/ZIGCHPART           TYPE /BIC/OIZIGCHPART,
    *      InfoObject: ZIGCHCTSH Magn_ci - CtShare.
            /BIC/ZIGCHCTSH           TYPE /BIC/OIZIGCHCTSH,
    *      InfoObject: ZIGCHCURR Magn_ci - Currency.
            /BIC/ZIGCHCURR           TYPE /BIC/OIZIGCHCURR,
    *      InfoObject: ZIGCHZONE Magn_ci - ZONE.
            /BIC/ZIGCHZONE           TYPE /BIC/OIZIGCHZONE,
    *      InfoObject: 0FISCPER Exercício / período.
            FISCPER           TYPE /BI0/OIFISCPER,
    *      InfoObject: 0FISCVARNT Variante de exercício.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
    *      InfoObject: ZIGKFCSAM Magnitude - Consolidated Amount.
            /BIC/ZIGKFCSAM           TYPE /BIC/OIZIGKFCSAM,
    *      InfoObject: 0CURRENCY Código da moeda.
            CURRENCY           TYPE /BI0/OICURRENCY,
    *      InfoObject: 0FISCYEAR Exercício.
            FISCYEAR           TYPE /BI0/OIFISCYEAR,
    *      InfoObject: 0FISCPER3 Período contábil.
            FISCPER3           TYPE /BI0/OIFISCPER3,
    *      InfoObject: ZIGCHAINT Magn_ci - Audit ID.
            /BIC/ZIGCHAINT           TYPE /BIC/OIZIGCHAINT,
    *      InfoObject: ZIGCHFINT Magn_ci - Fluxo.
            /BIC/ZIGCHFINT           TYPE /BIC/OIZIGCHFINT,
    *      InfoObject: ZIGCHGLAC Magn_ci - Conta.
            /BIC/ZIGCHGLAC           TYPE /BIC/OIZIGCHGLAC,
    *      InfoObject: ZIGCHCINT Magn_ci - Categoria.
            /BIC/ZIGCHCINT           TYPE /BIC/OIZIGCHCINT,
    *      InfoObject: ZIGCHPINT Magnitude - Perímetro de Consolidação.
            /BIC/ZIGCHPINT           TYPE /BIC/OIZIGCHPINT,
    *      InfoObject: ZIGCHCCUR Magn_ci - Consolidation Currency.
            /BIC/ZIGCHCCUR           TYPE /BIC/OIZIGCHCCUR,
    *      InfoObject: ZIGCHVINT Magnitude - Versão de Consolidação.
            /BIC/ZIGCHVINT           TYPE /BIC/OIZIGCHVINT,
    *      InfoObject: ZIGCHPROD Magn_ci - PROD.
            /BIC/ZIGCHPROD           TYPE /BIC/OIZIGCHPROD,
    *      InfoObject: ZIGCHDEST Magn_ci - Dest.
            /BIC/ZIGCHDEST           TYPE /BIC/OIZIGCHDEST,
    *      InfoObject: ZIGKFCSAC Magn - Cons.Amount - CURR.
            /BIC/ZIGKFCSAC           TYPE /BIC/OIZIGKFCSAC,
    *      InfoObject: ZIGKFCAIP Magn - Cons.Amount - IVA - PMP.
            /BIC/ZIGKFCAIP           TYPE /BIC/OIZIGKFCAIP,
    *      InfoObject: ZIGKFCAIR Magn - Cons.Amount - IVA - PMR.
            /BIC/ZIGKFCAIR           TYPE /BIC/OIZIGKFCAIR,
    *      InfoObject: ZIGKFVLM Dados Magnitude - Valor Mensal.
            /BIC/ZIGKFVLM           TYPE /BIC/OIZIGKFVLM,
    *      Field: RECORD.
            RECORD           TYPE RSARECORD,
          END   OF _ty_s_TG_1.
        TYPES:
          _ty_t_TG_1        TYPE STANDARD TABLE OF _ty_s_TG_1
                            WITH NON-UNIQUE DEFAULT KEY.
    *$*$ begin of global - insert your declaration only below this line  *-*
        ... "insert your code here
    *$*$ end of global - insert your declaration only before this line   *-*
        METHODS
          end_routine
            IMPORTING
              request                  type rsrequest
              datapackid               type rsdatapid
            EXPORTING
              monitor                  type rstr_ty_t_monitors
            CHANGING
              RESULT_PACKAGE              type _ty_t_TG_1
            RAISING
              cx_rsrout_abort.
        METHODS
          inverse_end_routine
            IMPORTING
              i_th_fields_outbound         TYPE rstran_t_field_inv
              i_r_selset_outbound          TYPE REF TO cl_rsmds_set
              i_is_main_selection          TYPE rs_bool
              i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
              i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
            CHANGING
              c_th_fields_inbound          TYPE rstran_t_field_inv
              c_r_selset_inbound           TYPE REF TO cl_rsmds_set
              c_exact                      TYPE rs_bool.
    ENDCLASS.                    "routine DEFINITION
    *$*$ begin of 2nd part global - insert your code only below this line  *
    ... "insert your code here
    *$*$ end of 2nd part global - insert your code only before this line   *
    *       CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
    *       Method end_routine
    *       Calculation of result package via end routine
    *       Note: Update of target fields depends on rule assignment in
    *       transformation editor. Only fields that have a rule assigned,
    *       are updated to the data target.
    *   <-> result package
      METHOD end_routine.
    *=== Segments ===
        FIELD-SYMBOLS:
          <RESULT_FIELDS>    TYPE _ty_s_TG_1.
        DATA:
          MONITOR_REC     TYPE rstmonitor.
    *$*$ begin of routine - insert your code only below this line        *-*
        DATA: wa_result_fim type _ty_s_TG_1.
        DATA: l_tabix type sy-tabix.
        CLEAR wa_result_fim.
        l_tabix = 0.
        SORT RESULT_PACKAGE BY /BIC/ZIGCHENTI /BIC/ZIGCHAINT /BIC/ZIGCHGLAC
        /BIC/ZIGCHPINT
        /BIC/ZIGCHVINT FISCPER.
        LOOP AT RESULT_PACKAGE assigning <RESULT_FIELDS>.
          IF sy-tabix = 1.
            <RESULT_FIELDS>-/BIC/ZIGKFVLM = <RESULT_FIELDS>-/BIC/ZIGKFCSAM.
          ELSE.
            l_tabix = sy-tabix - 1.
            READ TABLE RESULT_PACKAGE INDEX l_tabix INTO wa_result_fim.
            IF sy-subrc EQ 0.
              IF wa_result_fim-/BIC/ZIGCHENTI =
              <RESULT_FIELDS>-/BIC/ZIGCHENTI
              AND wa_result_fim-/BIC/ZIGCHAINT =
              <RESULT_FIELDS>-/BIC/ZIGCHAINT
              AND wa_result_fim-/BIC/ZIGCHGLAC =
              <RESULT_FIELDS>-/BIC/ZIGCHGLAC
              AND wa_result_fim-/BIC/ZIGCHPINT =
              <RESULT_FIELDS>-/BIC/ZIGCHPINT
              AND wa_result_fim-/BIC/ZIGCHVINT =
              <RESULT_FIELDS>-/BIC/ZIGCHVINT
              AND wa_result_fim-FISCYEAR = <RESULT_FIELDS>-FISCYEAR.
    Before I do this calculation I want it to validate if exist the period if not should append it with 0,00 and them do the subtraction.
    <RESULT_FIELDS>-/BIC/ZIGKFVLM =
                <RESULT_FIELDS>-/BIC/ZIGKFCSAM -
                wa_result_fim-/BIC/ZIGKFCSAM.
    ELSE.
                <RESULT_FIELDS>-/BIC/ZIGKFVLM =
                <RESULT_FIELDS>-/BIC/ZIGKFCSAM.
              ENDIF.
            ELSE.
              EXIT.
            ENDIF.
          ENDIF.
        ENDLOOP.
    *--  fill table "MONITOR" with values of structure "MONITOR_REC"
    *-   to make monitor entries
        ... "to cancel the update process
    *    raise exception type CX_RSROUT_ABORT.
    *$*$ end of routine - insert your code only before this line         *-*
      ENDMETHOD.                    "end_routine
    *       Method inverse_end_routine
    *       This subroutine needs to be implemented only for direct access
    *       (for better performance) and for the Report/Report Interface
    *       (drill through).
    *       The inverse routine should transform a projection and
    *       a selection for the target to a projection and a selection
    *       for the source, respectively.
    *       If the implementation remains empty all fields are filled and
    *       all values are selected.
      METHOD inverse_end_routine.
    *$*$ begin of inverse routine - insert your code only below this line*-*
        ... "insert your code here
    *$*$ end of inverse routine - insert your code only before this line *-*
      ENDMETHOD.                    "inverse_end_routine
    Edited by: João Piçarra on Aug 13, 2009 12:18 PM

  • Variable/expression result error

    Hi,
    I am trying to run a BPEL process which reads data from an EDI file, transforms it and calls the Sales Order creation API. The process is giving the following error at runtime:
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>empty variable/expression result.
    xpath variable/expression expression "ora:processXSLT('EDI2Oracle.xsl',bpws:getVariableData('ReceiveEDI850XML_Dequeue_InputVariable','Transaction-850'))" is empty at line 69, when attempting reading/copying it.
    Please make sure the variable/expression result "ora:processXSLT('EDI2Oracle.xsl',bpws:getVariableData('ReceiveEDI850XML_Dequeue_InputVariable','Transaction-850'))" is not empty.
    </summary>
    </part></selectionFailure>
    Please can anyone help me resolve this issue. Also, does any one have a concise document on how to import an EDI and create 850 Purchase Order.
    Regards,
    Balu

    Hi,
    can you please provide some details of the ReceiveEDI850XML_Dequeue_InputVariable?
    What is the input before your transform?
    What value is in this Transaction-850 parameter and what is the namespace of the Input?
    Can you please check if the namespaces are set right?

  • What is the best way to define this missing variable?????

    I think I am almost there with this question, thanks for working with me on this: trying to make buttons go target cue points in video
    I get this error code:
    ReferenceError: Error #1065: Variable seek_btn is not defined.
    import fl.video.*;
    // Video component instance name
    var flvControl:FLVPlayback = display;
    var flvSource:String = "lou.flv";
    // Set video
    flvControl.source = flvSource;
    // Add seek functionality to the button
    function seekHandler(event:MouseEvent):void
       flvControl.seekToNavCuePoint("lou1")
    seek_btn.addEventListener(MouseEvent.CLICK, seekHandler);
    seek_btn1.cuePointName = new String();
    seek_btn1.cuePointName = "lou1";
    seek_btn1.addEventListener(MouseEvent.CLICK, onButtonPress);
    seek_btn2.cuePointName = new String();
    seek_btn2.cuePointName = "lou2";
    seek_btn2.addEventListener(MouseEvent.CLICK, onButtonPress);
    // onButtonPress function
    function onButtonPress(evt:MouseEvent):void {
         flvControl.seekToNavCuePoint(evt.target.cuePointName);

    Definitely.... you are trying to assign a listener to something that does not exist
    seek_btn.addEventListener(MouseEvent.CLICK, seekHandler);
    If you do not have a seek_btn, the best way to define the missing variable is to create the seek_btn object.  If you don't plan to, then rather than define it, get rid of any code that uses it.

  • Missing variables in Infoset Query.

    Hi All,
    0P_KEYD2 is a variable for characterstic "Posting Date" in the  query which fires on ODS 0FIAR_O03.I have created an Infoset on ODS 0FIAR_O03 and 0CUST_SALES(Master Data)and created a query on this infoset. But I am unable to see variable 0P_KEYD2 for Posting Date in the Infoset Query.
    (There are some other variables too which are not visible in Infoset Query, these include - custom "Z..." variables & BC variables, with SAP exit and with User entry, etc)
    Could anyone suggest how to access this same variable for query on infoset as in ODS query?
    I tried having an new Infoset with just the ODS 0FIAR_O03, but here again these variables are missing for this characterstic (and possibly other variables for other characterstic), while if I try to build the query on the above ODS directly I get the variables!
    Version: We are on BW 3.5
    Thanks,
    Melwyn Joseph
    Message was edited by: Melwyn Joseph
    Message was edited by: Melwyn Joseph

    Hi,
    I'd put this query in SDN quite some time back..but didn't get any response then.
    As Raymond said above, that is what I'd done in my case. The original variables are SAP exit (u can view their code in the standard SAP FM's). Here the code refers to other variables/objects with their specific tech names (or something similar..don't remember it now). In infoset, as we dont get the original tech. names of the objects in the query ...these SAP exit codes will not work for these variables.
    The solution is to create your own custom variables & populate it in Customer Exit. U can get the logic from the SAP exit code...its not that difficult to understand.
    cheers,
    -Me

  • Programmatically create and deploy process definition

    1. It seems that PAPI does not support process definition creation and deployment. We need to programmatically create and deploy process definitions, what should we use?
    2. Is it possible to programmatically add variable definitions to a process instance? We have an external program that creates the process instance but sometimes the process instance may need to add some additional variables.
    Thank you for your help,
    shirley

    Hi Shirley,
    You're right PAPI wasn't intended to deploy processes, however, you can deploy processes automatically using ANT.
    You'd need to republish and redeploy (again using ANT) to add additional variables to a deployed process. Simplest thing to do would be to add attributes to an existing BPM Object. If you just added a new variable, you'd need to change argument mapping troughout the project.
    hth,
    Dan

  • Programmatically create transport packages (*.epa files)

    Hi fellow SDN members,
    Does anyone know is it is possible to programmatically create transport packages, i.e. *.epa files using an SAP API?
    Thanks in advance,
    Robin van het Hof

    Hi Michael,
    Actually your blog was a great help as well.
    I had created something similar, with the addition of deployment dates of PAR files, displaying certain manifest properties, dependencies, etc.
    I am able to select all modified objects from a certain period, but the missing part is creating the actual export
    (ps: I consider myself an expert as wel )
    Kind regards
    Robin van het Hof

Maybe you are looking for