POST Function Import in Gateway Builder

Hi everyone,
I am trying to create a new Function Import in SEGW transaction (Netweaver Gateway Builder).
I have followed different blogs (For example: Let’s code CRUDQ and Function Import operations in OData service!) and managed to create one.
However I am having 2 small differences:
1.  I am trying to make a Http POST Function Import which is a bit different in the way you call the service.
2. I have a parameter with type Edm.Guid.
I have not found any documentation about these 2 specific things.
Here is what I have...
My function and it`s parameters in SEGW:
My metadata:
The URI I am trying with it`s payload:
/sap/opu/odata/sap/MY_SERVICE/AddTransferProducts
with
<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<atom:content type="application/xml">
<m:properties>
     <d:DocGUID>guid’12345678-aaaa-bbbb-cccc-ddddeeeeffff’</d:DocGUID>
     <d:Products>R100000</d:Products>
</m:properties>
</atom:content>
</atom:entry>
With this setup I get the following error when I call the service: 404 not found
Anyone understands why it is not working ? Anyone already got this issue ?
Thank you very much.
Natalie

Metadata is showing GET method and the cache was cleared.
Here is a snippet of my code
CLASS xxxxx_DPC_EXT, method
/IWBEP/IF_MGW_APPL_SRV_RUNTIME~EXECUTE_ACTION
    IF iv_action_name EQ 'AddTransferProducts'.
      IF it_parameter IS NOT INITIAL.
*       Read Function import parameters values
        READ TABLE it_parameter
          INTO ls_parameter
          WITH KEY name = 'DocGUID'.
        IF sy-subrc = 0.
          lv_docguid = ls_parameter-value.
        ENDIF.
        READ TABLE it_parameter
          INTO ls_parameter
          WITH KEY name = 'Products'.
        IF sy-subrc = 0.
          lv_concat_products = ls_parameter-value.
        ENDIF.
        SPLIT lv_concat_products AT '||' INTO TABLE lt_products.
*       Save products in the staging table and get product information
        LOOP AT lt_products
          ASSIGNING <lfs_products>.
          ls_transfer_details-matnr =   <lfs_products>-matnr.
         APPEND ls_transfer_details TO lt_transfer_details.
        ENDLOOP.
*       Build the Document Details entity set to return
        LOOP AT lt_transfer_details
          ASSIGNING <lfs_transfer_details>.
          MOVE-CORRESPONDING <lfs_transfer_details> TO ls_entity.
          APPEND ls_entity TO lt_entityset.
        ENDLOOP.
*       Call method copy_data_to_ref and export entity set data
        copy_data_to_ref( EXPORTING is_data = lt_entityset
                CHANGING cr_data = er_data ).
      ENDIF.
    ENDIF.

Similar Messages

  • Using Function Import in Integration Gateway

    Hello Experts,
    Jitendra Kansal
    Midhun VP
    Andreas Wegmann
    Rakshit Doshi
    I am trying to use Function import for  Functions in Oracle DB.
    There is no option to bind datasource for Function import in oData Modelling.
    How Function imports can be used?
    Please Suggest.
    Regards
    Manish

    Hi Manish,
    As of now, IGW doesn't support function import. Enabling Database Content as OData Services - Data Integration using Integration Gateway - SAP Library
    CC: Bjoern Woppmann
    Regards,
    JK

  • MyUsedLink Function Import in Launchpad Gateway Service

    In the standard delivered Gateway Service for working with Launchpads there is a function import that updates the frequently used counter to whatever the current counter is +1.
    I have a requirement to provide a button on the UI so that the end user can reset the counter.  Theory being, there job may change and while they may have access to certain applications that are in their frequently used list, they may not need them as frequently any longer and they should have the option to remove them.
    It would have been fabulous to redefine this standard delivered service and make the change, but given the current class inheritance and SAP's unwillingness to unmark a super class as final, this is not possible.
    We are writing a new gateway service whose sole pupose is to update this counter to 0.
    Most of the code to accomplish this can just be copied from existing classes.
    I am struggling with how this should be structured.
    I had put this together in an update entity method.  However, this doesn't seem correct since we are basically passing a reference id like:
    04ZESS0DZESS_MYHR_FPM20005056A51C9D1EE3AFFEA106D591C3EA
    And expecting the code to update some obscure table with a value of 0 for the counter.
    1)     Is this a correct approach?
    2)     Should this be done in a function import given that we aren't really updating the entity per se but rather some end user personalization attribute?
    3)     Is there an issue with having a Gateway Service that is comprised of nothing but one function import?
    Any thoughts on this requirement are appreciated, perhaps we are heading down the wrong path altogether....

    Krishna,
    Thanks so much for your reply.  Exteremely helpful.
    We have been struggling through some of the standard delivered services and UI5 applications (swim lanes).
    I have created a REST service to handle updating the frequently used counter, so much smoother and easier.  I think this is the route we will go.
    However, not to hijack my own thread, but since we started down the oData route initially, I have not been able to get my gateway service to work.  I started by creating an entity called linkid that is simply a string and an entity set that is made of those links.  However, I have not been able to get the update entity method for the entity set to work.
    I am trying to wrap my mind around what we are trying to do and that we aren't really working with an entity set in the traditional sense, but rather importing a key (reference id) and expecting something to happen in the backend but not really updating that entity.
    We originally put this in the LINKS_UPDATE_ENTITY method.  But we aren't even getting that far.  I have googled the message returned but am still somewhat lost.  I am back to wondering if this really shouldn't be in an update method at all, but rather in the execute_action method and whether we should just be doing this with a function import rather than trying to do a put.
    We have created other GW services, but they all have traditional entity sets and there is a get implementation in addition to the update and deletes and that all seems to make sense.  This one just seems odd as what we are trying to do is very focused and seems to be missing half the parts and I'm wondering if that's the problem....
    EDIT: I should mention, that my understanding is that this is an issue with the body of the request, however, I'm not sure how to debug that.

  • Inbound IDoc Posting Function Module

    Give me an example of   how to write "Inbound IDoc Posting Function Module".
    In my IDOC i have 10 segments each containing 1 field.
    How do i create the Inbound IDoc Posting Function Module ??
    Is the following code correct ??
    FUNCTION ZIDOC_INBOUND.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(INPUT_METHOD) LIKE  BDWFAP_PAR-INPUTMETHD
    *"     VALUE(MASS_PROCESSING) LIKE  BDWFAP_PAR-MASS_PROC
    *"  EXPORTING
    *"     VALUE(WORKFLOW_RESULT) LIKE  BDWFAP_PAR-RESULT
    *"     VALUE(APPLICATION_VARIABLE) LIKE  BDWFAP_PAR-APPL_VAR
    *"     VALUE(IN_UPDATE_TASK) LIKE  BDWFAP_PAR-UPDATETASK
    *"     VALUE(CALL_TRANSACTION_DONE) LIKE  BDWFAP_PAR-CALLTRANS
    *"  TABLES
    *"      IDOC_CONTRL STRUCTURE  EDIDC
    *"      IDOC_DATA STRUCTURE  EDIDD
    *"      IDOC_STATUS STRUCTURE  BDIDOCSTAT
    *"      RETURN_VARIABLES STRUCTURE  BDWFRETVAR
    *"      SERIALIZATION_INFO STRUCTURE  BDI_SER
    *"  EXCEPTIONS
    *"      WRONG_FUNCTION_CALLED
    *DATABASE TABLES
    TABLES:LIKPUK.
    *DATA DECLARATIONS
        DATA: SALES_ORDER_NUM             LIKE Z1VBELN.
        DATA: DEL_TYPE                    LIKE Z1LFART.
        DATA: ACTUAL_GOODS_MOVEMENT_DATE  LIKE Z1WADAT_IST.
        DATA: SHIPPING_POINT              LIKE Z1VSTEL.
        DATA: LOADING_POINT               LIKE Z1LSTEL.
        DATA: ROUTE_PGI                   LIKE Z1ROUTE.
        DATA: PICK_DATA                   LIKE Z1KODAT.
        DATA: CUST_NO                     LIKE Z1KUNNR.
        DATA: LOCAL_DATE                  LIKE Z1STDAT.
        DATA: TOTAL_GOOD_MOV              LIKE Z1WBSTK.
    *INTERNAL TABLE DECLARATION
    DATA:
    IT_LIKP LIKE LIKPUK OCCURS 0 WITH HEADER LINE.
    INITIALIZE WORK FLOW
        WORK_RESULT = C_WF_RESULT_OK.
         LOOP AT IDOC_CONTRL.
    MAKE SURE WE HAVE CORRECT MESSAGE TYPE PASSED.
         IF IDOC_CONTRL-MESTYP NE 'Z_IDOC_PGI'.
         RAISE WRONG_FUNCTION_CALLED.
         ENDIF.
    CLEAR APPLICATION BUFFERS BEFORE READING NEW ENTRY
        CLEAR :IT_LIKP.
      REFRESH IT_LIKP.
    *PROCESS ALL THE DATA RECORDS IN AN IDOC AND TRANSFER THEM TO
    *APPLICATION BUFFERS
    INCLUDE MBDCONWF.
    LOOP AT IDOC_DATA WHERE DOCNUM EQ idoc_contrl-docnum.
    CASE IDOC_DATA-SEGNAM.
    WHEN'Z1VBELN'.
       SALES_ORDER_NUM  =    IDOC_DATA-SDATA.
       MOVE-CORRESPONDING SALES_ORDER_NUM TO IT_LIKP.
    WHEN 'Z1LFART'.
       DEL_TYPE    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING DEL_TYPE TO IT_LIKP.
    WHEN 'Z1WADAT_IST'.
       ACTUAL_GOODS_MOVEMENT_DATE    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING ACTUAL_GOODS_MOVEMENT_DATE TO IT_LIKP.
    WHEN 'Z1VSTEL'.
       SHIPPING_POINT    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING SHIPPING_POINT TO IT_LIKP.
    WHEN 'Z1LSTEL'.
       LOADING_POINT   = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING LOADING_POINT TO IT_LIKP.
    WHEN 'Z1ROUTE'.
       ROUTE_PGI    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING ROUTE_PGI TO IT_LIKP.
    WHEN 'Z1KODAT'.
       PICK_DATA =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING PICK_DATA TO IT_LIKP.
    WHEN'Z1KUNNR'.
       CUST_NO  =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING CUST_NO TO IT_LIKP.
    WHEN'Z1STDAT'.
       LOCAL_DATE  =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING LOCAL_DATE TO IT_LIKP.
    WHEN'Z1WBSTK'.
       TOTAL_GOOD_MOV  =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING TOTAL_GOOD_MOV TO IT_LIKP.
    ENDCASE.
    ENDLOOP.
    selecting data from the database
    select * from likp into corresponding fields of table it_likp.
    add status record
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = it_likp-VBELN.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = it_likp-VBELN.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
    IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LFART.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LFART.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
    IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WADAT_IST.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WADAT_IST.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-VSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-VSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-ROUTE.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-ROUTE.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KODAT.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KODAT.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KUNNR.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KUNNR.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = SY-DATLO.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = SY-DATLO.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WBSTK.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WBSTK.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
    endloop.
    endfunction.

    Hi,
    First goto WE20-> click on the logical system , now select the receiver LS which you are using as your partner. Now in the inbound parameters cehck what is the process code is attached.
    once you get the process code then go to WE42 tcode.. there you give the process code and then double click you will get the function module IDOC_INPUT_FIDCMT.
    Hopw you got my point.
    Regards,
    Nagaraj

  • Odata function import - structure as import parameter

    Hello Experts,
    I want to pass list of measured values (valueID, measured value) with info about temperature and date.
    So i want to pass to function data like this:
    - temerature
    - date
    - measured value table
             -  valueID1, measured value1
             - valueID2, measured value2
             - valueID3, measured value3
    I am not able to find way how to do it. In function import parameters there is no option to do it (like on below screen from segw)
    Thanks for help.
    Lucas

    I don't like this situation.
    Probably its often situation when you want to pass
    1) from client
    2) or to client
    data with structure:
    - param1
    - param2
    - tableType1
    For now i know ways:
    1) concatenate values from table to one string parameter (function import apraache)
    2) create update statement with table (crud update approache) and add param1 and param2 to tableType1. Its of course redundantion and its not good approache for big data.
    3) and probably best one: Batch Request in Netweaver Gateway(Multiple Operations into a Single Request)
    But i am disappointed that its also impossible to pass table type into function import.
    Am i right ?
    BR Lucas

  • Odata function import - input as complex type

    Hello
    Is it possible to make an input as a complex type ?
    for example we want to check set of values which are in table, all for one temperature .
    and we will use structure:
    1) -temperature
        -table
              -tableval1
              -tableval2
              -tableval3
    Question is how to set such input type in segw ?
    Thanks from mountains
    Lucas

    Thank you for answer.
    The way you create this example does not reflect relation 1:n
    We know that temperature value to measured values in in relation 1:n 
    We don't know n , its could be 5 or 100.
    As i understand you approach with complex type will be good when we know that for example for every temperature there will be 5 measured values. but we don't know this. Its dynamic value from runtime, not static.
    I mixup while writing post complex type with table type. Correct valus which i want to pass are:
    - temerature
    - date
    - measured value table (n-values, dynamic from runtime)
              -  valueID1, measured value1
             - valueID2, measured value2
             - valueID3, measured value3
             - valueIDn, measured valuen
    For now i know 2 ways:
    1) concatenate values from table to one string parameter (function import apraache)
    2) create update statement with table (crud update approache):
    - temerature, date, valueID1, measured value1
    - temerature, date, valueIDn, measured valuen
    It makes redundantion.
    Both solutions are not ideal.
    Thanks for your help!

  • Oracle Proc in edmx via add function import is not working

    I have a mandate to call a external oracle package from my local oracle db proc using Entity Framework. I have created a synonym for that. When I am trying to polpulate the oracle procedure data in my mvc screen using odp.net. The screen is closing automatically when I am trying to retive the column info by clicking "get column information" under "Add Function Import" in model browser.
    Following is my code snipet
    1. created a oracle stored proc to call the external proc
    CREATE OR REPLACE PROCEDURE USP_GET_DETAILS
    IN_ID IN NUMBER,
    OUT_RESULT OUT SYS_REFCURSOR
    IS
    OUT_FED_TAX_ID_NO VARCHAR2(50);
    OUT_PARTY_ID_NO NUMBER;
    OUT_PARTY_TYP_CD NUMBER;
    BEGIN
    PKG_GET_DETAILS.USP_GET_DETAILS_INFO (IN_ID, OUT_FED_TAX_ID_NO, OUT_PARTY_ID_NO);
    OPEN OUT_RESULT FOR
         SELECT OUT_FED_TAX_ID_NO, OUT_PARTY_ID_NO FROM DUAL;
    END USP_GET_DETAILS;
    2. added the proc "USP_GET_DETAILS" using "Update model using database" in my edmx file
    3. Now proc has been added to my edmx file under SSDL
    <Function Name="USP_GET_DETAILS" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="BCS_OWNER">
    <Parameter Name="IN_ID" Type="number" Mode="In" />
    </Function>
    4. added following code to my web.config file
    <oracle.dataaccess.client>
    <settings>
    <add name="BCS_OWNER.USP_GET_DETAILS.RefCursor.OUT_RESULT" value="implicitRefCursor bindinfo='mode=Output'" />
    <add name="BCS_OWNER.USP_GET_DETAILS.RefCursorMetaData.OUT_RESULT.Column.0" value="implicitRefCursor metadata='ColumnName=OUT_FED_TAX_ID_NO;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
    <add name="BCS_OWNER.USP_GET_DETAILS.RefCursorMetaData.OUT_RESULT.Column.1" value="implicitRefCursor metadata='ColumnName=OUT_PARTY_ID_NO;NATIVEDATATYPE=Number;ProviderType=Decimal'" />
    </settings>
    </oracle.dataaccess.client>
    5. underModel Browser try to add the procedure under "Add Import Function", select "Complex Type". when i am clicking on "Get column information" button, the screen blank for some time and then auto closing the screen without displaying any column info. I would like to know if any thing wrong i am doing on my steps? please help?

    I managed to workaround this problem.
    I add the function with no return value. Then in the Model Explorer you go to the properties of the imported function and edit the return type property, the same dialog appears, but this time it works as expected(considering you have set all the values correctly on your config file).

  • Not getting column information while Function Import

    i had followed below link
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/EntityFrameworkOBE/EntityFrameworkOBE.htm
    i m successfully able to update and add recored using Entity framework into oracle DB.
    now my problem is with Select SPS here i follwed all step from above link with sql db and i m able to get column informatin while same is not possible with oracle db.
    the stored procedure returns a ref cursor, so we can create a new complex type by selecting "Get Column Information" then selecting "Create New Complex Type".
    but i m not able to have enable button for create new complex type becuase get column not return anything.
    i had created model or .edmx file and then go to model browser where i had list of stored procedure not by double click on sp we will get one dialog box for function import
    over there when ever i select sp and then get colum information i m not able to find any thing ,,,, while sp is running fine i test that too using sql developer,,,
    and yes i had created complex property tooo but that columns are also not coming.........
    i m new to this please help me where i m lacking.
    PLEASE
    Reference copy of my SP
    PROCEDURE GETPERSONDETAIL(curParam out sys_refcursor)
    IS
    BEGIN
    OPEN curParam FOR
    SELECT
    FIRSTNAME,
    GENDER_CODE,
    BIRTH_DATE,
    LASTNAME
    FROM PERSON;
    END;
    this sp is simple select statement...
    Edited by: 875347 on Jul 27, 2011 2:23 AM

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <connectionStrings>
    <add name="HREntities" connectionString="metadata=res://*/HRModel.csdl|res://*/HRModel.ssdl|res://*/HRModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=IRWORA;PASSWORD=irw#1234;PERSIST SECURITY INFO=True;USER ID=IRW01&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
    i had taken same name as per link i.e. HREntities and HRModel all that
    now pls check my settings are correct or not because my Datasource name is IRWORA and oracle username is irw01 so do i need to change that in baseschemaname which i defined as HR,,, and yes i put the same &quot do i need to change that i hav no idea for that .....
    below is my app config for the same....
    <oracle.dataaccess.client>
    <settings>
    <add name="&quot;HR&quot;.&quot;UPDATE_AND_RETURN_SALARY&quot;.RefCursor.NEW_SALARY" value="implicitRefCursor bindinfo='mode=Output'" />
    <add name="&quot;HR&quot;.&quot;UPDATE_AND_RETURN_SALARY&quot;.RefCursorMetaData.NEW_SALARY.Column.0" value="implicitRefCursor metadata='ColumnName=FIRST_NAME;BaseColumnName=FIRST_NAME;BaseSchemaName=HR;BaseTableName=EMPLOYEES;NATIVE_DATA_TYPE=Varchar2;ProviderType=Varchar2;PROVIDER_DB_TYPE=String;ColumnSize=20'" />
    <add name="&quot;HR&quot;.&quot;UPDATE_AND_RETURN_SALARY&quot;.RefCursorMetaData.NEW_SALARY.Column.1" value="implicitRefCursor metadata='ColumnName=SALARY;BaseColumnName=SALARY;BaseSchemaName=HR;BaseTableName=EMPLOYEES;NATIVE_DATA_TYPE=Number;ProviderType=Int32;DataType=System.Int32;ColumnSize=8'" />
    </settings>
    </oracle.dataaccess.client>
    </configuration>
    sorry i m very new to this ,,,,
    please help me

  • How to create Import format for building  version Hirerarchy and Node

    Hi
    i Want to know  how to create  Import format for building version  Hirerarchy and Nodes.Can anyone  show me with example  or format  for version  Hierarchy  with few nodes for the hierarchy
    i Want to Build   this   1. Version1 (Version)
                                     2.Account (Hirerarchy)
                                     3. Balancesheet (Limb)
                                     4. Assets (Limb)
                                     5. Cash (Leaf)
    Thanks,

    Please follow the DRM User Guide,
    http://docs.oracle.com/cd/E17236_01/epm.1112/drm_user.pdf
    Below is my preferred approach, by selecting only relation and Hierarchy sections,
    The relation section contains the Node Name and Parent Name ( you can include any other properties, but as a best practice keep the Parent Node as the last column).
    The Hierarchy ( Hier ) section contains the Hierarchy Name, Top Node and Hierarchy description
    Follow the Import steps and provide a Name for the version.
    ++++++++++++++++++++++++++++++++
    [relation]
    AC_BalanceSheet AC_Account
    AC_Asset AC_Account
    AC_Cash AC_Account
    [hier]
    Account AC_Account AccountHier
    ++++++++++++++++++++++
    Note: Please delete all the special characters (TAB) created at the end of  [relation] and [hier] sections while you copy the content from an Excel sheet to a Notepad.

  • Howto map to an odata model function import returning an entity, not an entity set?

    Hi,
    how do I map to an odate model function import returning an entity (not an entity set) in a XML view? I tried property mapping {/method/property}, which does not make a network request and sets the value to null and I tried aggregation mapping {/method}, which makes a network request with $skip=0&$top=100&$inlinecount=allpages which is of course rejected by the odata source.
    Thanks,
    Wolfgang

    Hello Dr. Wolfgang,
    you can use
      var oParams = {};
      oParams.Field1 = 'ABC';
      oParams.Field2= 'XYZ';
      oParams.Field3= '123';
      oModel.callFunction('MyFuncImport', 'GET', oParams, null, function(oResponse){
            alert("Call to Func Imp successful");
        },function(){
            alert("Call to Func Imp failed");});
    also refer SAPUI5 SDK - Demo Kit
    Regards,
    Chandra

  • GW Function Import: pass parameter table (e.g. multiple parameters of same type)

    Hello GW experts,
    we have defined a Function Import "CreatePOWithReference" with a parameter "Reference" which contains a string with information about a reference document which shall be used to create a new Purchase Order (PO):
    Now I would like to pass not only a single reference but multiple reference all of the same type "Reference".
    I tried calling the function import with two references like this:
    /sap/opu/odata/sap/ZMP_ODATA_PO_SRV/CreatePOWithReference?Reference='123'&Reference='456'
    But in method "/IWBEP/IF_MGW_APPL_SRV_RUNTIME~EXECUTE_ACTION" my parameter table "IT_PARAMETER" only contains 1 single record:
    How can I achieve that the table "IT_PARAMETER" contains two records (Reference='123' and Reference='456')?
    Thanks and best regards,
    Oliver
    PS: As there can be any number of references, it is not an option to create several parameters "Reference1", "Reference2", "Reference3" and so on... .

    Hello Thomas,
    In my opinion, i do not think you can pass same property multiple times as you are trying now. I really doubt if GW supports this and IT_PARAMETER has only one Reference ( which is sent 1st i.e., 123 ) as you have already shared values read at runtime.. As per my understanding it is the correct behavior of GW where only one reference number - 123 is present in IT_PARAMETER table.
    Other standard way of accomplishing your business case would be implementing CREATE operation and operate it on BATCH.
    Regards,
    Ashwin

  • Post 4.0.0.7791 builds and TextArea

    Post 4.0.0.7791 builds and TextArea
    What's happened to TextArea in the build since the name change? I've been looking through the changes and seem to miss what I need to change to get RichText rendering again.
    Using build from trunk. This has been te same for a while now. Soon as I go back to a build around i13 all is well again
    The whole <s:content text is just rendered with it's tags and all. all just plain text.
    I know I must ber missing something that's looking me in the face
    cheers

    also
    has anyone had trouble with getting embeded fonts to work with SimpleText and RichText with the last couple of builds?
    Was working fine for me with i13 bu since the name change (not saying that the name change was the problem) I just can't seem to get SimpleText to work style wise at all.
    anyone else?

  • Transfer functions imported from Simulink through MIT not working in Labview

    Hi,
    I am just starting to use Labview interface with Simulink using Model Interface Toolkit (MIT). I am trying to import an integrater model from simulink. The model is very simple. An input port connected to an output port through an integrator model (1/s). Here are the steps I used:
    1. Build the model in Simulink.
    2. Add the NI input-output ports to the model and place the NIVeriStandSignal Probe in the model.
    3. Generate the dll using NiVeriStand.tlc as the target file option.
    4. Import that dll into Labview using Load Model.vi. Follow the steps given in the example file for importing the input/ output ports info along with the timing info.
    5. Then use a numeric control to input value to the integrator dll and pass the output from dll to a waveform chart.
    But when I run the labview VI, the output in the chart is always zero. What could be the possible reason? Please let me know if I am making any mistake in the process?
    I have used Fixed time step with ode4 (Runge-Kutta) as the solver options in Simulink during dll generation. I am using Labview 2014 and Matlab R2014a.
    I have found the issue to occur only when I use any transfer functions or Plecs circuit with inductors or capacitors in my Simulink model. But when I use simulink model with only constant or maths functions like add, subtract etc, this process works and gives me the correct result in Labview.
    Any help would be appreciated.
    Thanks.

    Hello Sachin_Madhu,
    Can you build example programs with a solver included? Does the model work in The MathWorks, Inc. Simulink® Software without tying into LabVIEW? It is important that when you built the model you followed the four steps listed in this help file:
    http://zone.ni.com/reference/en-XX/help/374160A-01​/vsmithelp/mit_convert_model_to_dll/
    MATLAB®, Simulink®, and Real-Time Workshop® are registered trademarks of The MathWorks, Inc. Other product and company names listed are trademarks and trade names of their respective companies.
    Siana A.
    Application Engineering
    National Instruments

  • MIRO  posting of import Turnover Tax from the customs agent

    Dear SAP Gurus,
    I need your inputs for the below described issue:
    Customs agent send us invoice for import turnover tax which he pays   at customs in behalf of our company.
    We have purchase prders for the imported materials.
    How can we handle  such import turnover taxes which is a compensation for the VAT to be paid for that materials in the importing country.
    Do we need to create a new tax code and if yes which % , bcs. the paid import turnover tax is different depending on imported goods. How can we post in miro directly on the  import turnover tax account? The system does not allow it bcs. of base amount problem.
    I am not sure if the creation of a new condition record for this tax type can help bcs. we need it to post in Miro from another vendor (customs agent) than the vendor of the Purchase order.
    We should be able to show these taxes in VAT report too.
    Your inputs higly appreciated.
    Thanks and Kind Regards
    Tarik

    post via FB60 onto VAT Acccount (indicator < and flag 'calculate tax base' while posting)
    depending on the VAT reporting requirements, you can need a new VAT code.

  • Post Create/Import Application Wizard Action

    I'm fairly new to working with SCCM 2012 R2 so most of this will be pure ignorance.
    I've had a fairly easy time learning how to craft my own forms and extensions using C# and xml. I'm even getting more and more comfortable using the Admin UI Console Editor; though the sheer amount of detail in that is a bit overwhelming trying to digest
    (Series of walkthroughs anyone?)
    What I'm wondering is there a way and if so how do I link up a post wizard action to run after the standard create or import application wizard finishes.
    Right now I already have a custom wizard that sends an existing application information including it's parent folder tree and it's deployments to our intranet document repository, But that's based on our Application Section in configuration manager organized
    in the following way (All are folders obviously except the final item)
    Applications
    <Manufacturer/Publisher>
    <Product>
    <Version>
    <Actual Application>
    I would like to fire up a follow up action to automatically create the folder structure based on the above information provided in the application wizard, and then move the application into its intended destination folder
    I could add the logic into my custom documentation form but I would rather have it be something that happens when an application is created so it's one less thing our software packaging staff has to worry about.
    Thanks in advance for any help and direction on this.
    Ryan

    Hi,
    How about writing a script to create a application and the script contains codes of creating folder and moving application to a folder?
    Best Regards,
    Joyce
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

Maybe you are looking for