BAPI for HR ITs

Hello Everyone,
I am looking for a BAPI or fm for data entry into HR infotypes like IT0014, IT0015 instead of batch inputs. Is there such a fm?
Thx in advance
Ali

Hi,
You can see <a href="https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP-InsertInfotypedatawithMaintain+Text">this link</a> for sample program.
Regards,

Similar Messages

  • BAPI FOR Deleting a Schedule Line Item from EKES and EKET tables

    Dear All,
    I would like to for deleting one of the line item from EKES (Po Confirmation ) and the respective line item from the EKET(PO Schedule Line Item Table).
    Assume that am allowing the user to select the lineitem from zprogram screen and collecting the PO and Its LIne Item details in an internal table.
    Can i Use
    <b>BAPI_PO_Change</b> , if so , can anybody tell me the steps to follow to use this bapi for deleting the PO lineItems, since i m going to try BAPI for First time.
    pls help me out
    Message was edited by: Raja K.P

    Hi raja ,
    loop at iekko1.
        w_index = sy-tabix.
        item-po_item   = itemx-po_item   = iekko1-ebelp.
        item-quantity  = iekko1-mng01.
        itemx-quantity = iekko1-mng01.
        if iekko1-wamng = iekko1-wemng.
        itemx-no_more_gr = item-no_more_gr = 'X'.
        else.
        itemx-no_more_gr = item-no_more_gr = ''.
        endif.
        append item.
        append itemx.
          clear return[].
          call function 'BAPI_PO_CHANGE'
               exporting
                    purchaseorder = iekko1-ebeln
               tables
                    return        = return
                    poitem        = item
                    poitemx       = itemx.
          if return[] is initial.
          commit work and wait.
          call function 'DEQUEUE_ALL'.
    search for deletion fields which u have to mark 'X'.
    before calling  this BAPi u have to lock the PO by using ENQUEUE.
    <b>
    FU BAPI_PO_CHANGE
    Text
    Change purchase order
    Functionality
    Function module BAPI_PO_CHANGE enables you to change purchase orders. The Change method uses the technology behind the online transaction ME22N.
    Alternatively, the IDoc type PORDCH1 is available. The data from this IDoc populates the interface parameters of the function module BAPI_PO_CHANGE.
    Functionality in Detail
    Authorization
    When you create (activity 02) an Enjoy purchase order, the following authorization objects are checked:
    M_BEST_BSA (document type in PO)
    M_BEST_EKG (purchasing group in PO)
    M_BEST_EKO (purchasing organization in PO)
    M_BEST_WRK (plant in PO)
    Controlling adoption of field values via X bar
    For most tables, you can use your own parameters in the associated X bar (e.g. PoItemX) to determine whether fields are to be set initial, values inserted via the interface, or default values adopted from Customizing or master records, etc. (for example, it is not mandatory to adopt the material group from an underlying requisition - you can change it with the BAPI).
    Transfer
    Purchase order number
    The PurchaseOrder field uniquely identifies a purchase order. This field must be populated in order to carry out the Change method.
    Header data
    The header data of the Enjoy purchase order is transferred in table PoHeader.
    Item data
    The item data of the Enjoy purchase order is stored in the tables PoItem (general item data). Changes regarding quantity and delivery date are to be made in the table PoSchedule.
    Use the table PoAccount to change the account assignment information.
    Services and limits
    Changes to existing items cannot be carried out with the Change method. It is only possible to create new items.
    Conditions
    Conditions are transferred in the table PoCond; header conditions in the table PoCondHeader. A new price determination process can be initiated via the parameter CALCTYPE in the table PoItem.
    Vendor and delivery address
    The vendor address in the table PoAddrVendor and the delivery address in the table PoAddrDelivery can only be replaced by another address number that already exists in the system (table ADRC). Changes to address details can only be made using the method BAPI_ADDRESSORG_CHANGE.
    Partner roles
    You can change all partners except the partner role "vendor" via the table PoPartner.
    Export/import data
    Export/import data can be specified per item in the table PoExpImpItem. Foreign trade data can only be transferred as default data for new items. Changes to the export/import data of existing items are not possible.
    Texts
    Header and item texts can be transferred in the tables PoTextHeader and PoTextItem. Texts for services are imported in the table PoServicesText. Texts can only be replaced completely.
    Version Management
    You can make use of the Version Management facility via the table AllVersions.
    Return
    If the PO was changed successfully, the header and item tables are populated with the information from the PO.
    Return messages
    Messages are returned in the parameter Return. This also contains information as to whether interface data has been wrongly or probably wrongly (heuristical interface check) populated. If a PO has been successfully created, the PO number is also placed in the return table with the appropriate message.
    Restrictions
    With this function module, it is not possible to:
    Create subcontracting components (you can only use existing ones)
    Create configurations (you can only use existing ones)
    Change message records (table NAST) and additional message data (this data can only be determined via the message determination facility (Customizing))
    Attach documents to the purchase order
    Change foreign trade data
    Change service data
    Change or reexplode BOMs
    A firewall prevents the manipulation of data that is not changeable in Purchasing according to the business logic of the purchase order (e.g. PO number, vendor, etc.).
    PO items with an invoicing plan cannot be created or changed using the BAPIs
    In this connection, please refer to current information in Note 197958.
    To change addresses with numbers from Business Address Services (cantral address management), please use the function module BAPI_ADDRESSORG_CHANGE.
    To change variant configurations, please use the function module BAPI_UI_CHANGE. More information is available in the BAPI Explorer under the Logistics General node.
    In the case of changes that are to be made via the BAPI_PO_CHANGE, a firewall first checks whether the relevant fields are changeable. This approach follows that of the online transaction. Here it is not possible to change the vendor or the document type, for example.
    Example
    Example of changes made to a purchase order with:
    1. Change in header data
    2. Change in item
    3. Change in delivery schedule
    4. Change in account assignment
    5. Change in conditions
    6. Change in partners
    Parameter: PURCHASEORDER 4500049596
    Parameter: POHEADER
    PMNTTRMS = 0002
    PUR_GROUP = 002
    Parameter: POHEADERX
    PMNTTRMS = X
    PUR_GROUP = X
    Parameter: POITEM
    PO_ITEM = 00001
    CONF_CTRL = 0001
    Parameter: POITEMX
    PO_ITEM = 00001
    PO_ITEMX = X
    CONF_CTRL =  X
    Parameter: POSCHEDULE
    PO_ITEM = 00001
    SCHED_LINE = 0001
    QUANTITY = 10.000
    PO_ITEM = 00001
    SCHED_LINE = 0003
    DELETE_IND =  X
    Parameter: POSCHEDULEX
    PO_ITEM =  00001
    SCHED_LINE =  0001
    PO_ITEMX =  X
    SCHED_LINEX =  X
    QUANTITY =  X
    PO_ITEM =  00001
    SCHED_LINE =  0003
    PO_ITEMX =  X
    SCHED_LINEX =  X
    DELETE_IND = X
    Parameter: POACCOUNT
    PO_ITEM = 00001
    SERIAL_NO = 01
    GL_ACCOUNT = 0000400020
    Parameter: POACCOUNTX
    PO_ITEM = 00001
    SERIAL_NO = 01
    PO_ITEMX = X
    SERIAL_NOX = X
    GL_ACCOUNT = X
    Parameter: POCOND
    ITM_NUMBER = 000001
    COND_TYPE = RA02
    COND_VALUE = 2.110000000
    CURRENCY = %
    CHANGE_ID = U
    Parameter: POCONDX
    ITM_NUMBER = 000001
    COND_ST_NO = 001
    ITM_NUMBERX = X
    COND_ST_NOX = X
    COND_TYPE = X
    COND_VALUE = X
    CURRENCY = X
    CHANGE_ID = X
    Parameter: POPARTNER
    PARTNERDESC =  GS
    LANGU =  EN
    BUSPARTNO = 0000001000
    Help in the Case of Problems
    1. Note 197958 lists answers to frequently asked questions (FAQs). (Note 499626 contains answers to FAQs relating to External Services Management.)
    2. If you have detected an error in the function of a BAPI, kindly create a reproducible example in the test data directory in the Function Builder (transaction code SE37). Note 375886 tells you how to do this.
    3. If the problem persists, please create a Customer Problem Message for the componente MM-PUR-PO-BAPI, and document the reproducible example where necessary.
    Customer Enhancements
    The following user exits (function modules) are available for the BAPI BAPI_PO_CREATE1:
    EXIT_SAPL2012_001 (at start of BAPI)
    EXIT_SAPL2012_003 (at end of BAPI)
    The following user exits (function modules) are available for the BAPI BAPI BAPI_PO_CHANGE:
    EXIT_SAPL2012_002 (at start of BAPI)
    EXIT_SAPL2012_004 (at end of BAPI)
    These exits belong to the enhancement SAPL2012 (see also transaction codes SMOD and CMOD).
    There is also the option of populating customer-specific fields for header, item, or account assignment data via the parameter EXTENSIONIN.
    Further Information
    1. Note 197958 contains up-to-date information on the purchase order BAPIs.
    2. If you test the BAPIs BAPI_PO_CREATE1 or BAPI_PO_CHANGE in the Function Builder (transaction code SE37), no database updates will be carried out. If you need this function, please take a look at Note 420646.
    3. The BAPI BAPI_PO_GETDETAIL serves to read the details of a purchase order. The BAPI cannot read all details (e.g. conditions). However, you can use the BAPI BAPI_PO_CHANGE for this purpose if only the document number is populated and the initiator has change authorizations for purchase orders.
    4. Frequently used BAPIs for purchase orders are BAPI_PO_CREATE, BAPI_PO_CREATE1, BAPI_PO_CHANGE, BAPI_PO_GETDETAIL, BAPI_PO_GETITEMS, BAPI_PO_GETITEMSREL, and BAPI_PO_GETRELINFO.
    5. For more information on purchase orders, refer to the SAP library (under MM Purchasing -> Purchase Orders) or the Help for the Enjoy Purchase Order, or choose the path Tools -> ABAP Workbench -> Overview -> BAPI Explorer from the SAP menu.
    Parameters
    PURCHASEORDER
    POHEADER
    POHEADERX
    POADDRVENDOR
    TESTRUN
    MEMORY_UNCOMPLETE
    MEMORY_COMPLETE
    POEXPIMPHEADER
    POEXPIMPHEADERX
    VERSIONS
    NO_MESSAGING
    NO_MESSAGE_REQ
    NO_AUTHORITY
    NO_PRICE_FROM_PO
    EXPHEADER
    EXPPOEXPIMPHEADER
    RETURN
    POITEM
    POITEMX
    POADDRDELIVERY
    POSCHEDULE
    POSCHEDULEX
    POACCOUNT
    POACCOUNTPROFITSEGMENT
    POACCOUNTX
    POCONDHEADER
    POCONDHEADERX
    POCOND
    POCONDX
    POLIMITS
    POCONTRACTLIMITS
    POSERVICES
    POSRVACCESSVALUES
    POSERVICESTEXT
    EXTENSIONIN
    EXTENSIONOUT
    POEXPIMPITEM
    POEXPIMPITEMX
    POTEXTHEADER
    POTEXTITEM
    ALLVERSIONS
    POPARTNER
    Exceptions
    Function Group
    2012
    </b>
    regards
    prabhu
    Message was edited by: Prabhu Peram

  • BAPI FOR CREATING SALES ORDER WITH REFFERENCE TO QUOTATION

    Hi All,
    I am creating sales order with refference to quotation by using bapi "BAPI_SALESORDER_CREATEFROMDATA".Able to create sales order but its not refferencing qutation.Is there any other bapi for this scenario.Please guide me.
    Regards,
    Suresh

    Hi ,
    Thank you for giving reply I tried by using bapi BAPI_SALESORDER_CREATEFROMDAT2 after execution it giving sales order number but when I am trying to see that sales order system is giving error message as document is not exist.
    Please guide me.
    Suresh

  • Customer Master BAPI for PI interface

    Hai Frds,
    We are using the PI interface for taking Customer data from Legacy and creating in ECC.  For this we are using BAPIs. We have some BAPIs for customer creation but all are for online creation only. Is there any BAPI for creating the customer through Interface.
    I found one BAPI : /SAPNEA/SMAPI_CUSTOMER_CREATE.
    But its creating the customer with reference customer only. Also there is no Reconciliation Account field which is mandatory for our req.

    we have to send status(both immediate and batch) back to Legacy for each document posted in ECC. If i will use IDOC i have to use one INBOUND IDOC for getting data in to SAP and one OUTBOUND IDOC for sending status(which i have catch from some Ztable)  to legacy . All this is Lengthy process to do. So, we planned to go for BAPIs which will catch status immediately.
    So, Looking for BAPI for customer master.

  • BAPI for Purchase Order Confirmation and update EKES table

    Hi all,
    I have a requirement to update the PO confirmation soon after successful creation of PO in an IDOC.
    I have used BAPI_PO_CHANGE function module which didnt serve the purpose as it cannot update confirmations.
    I tried using ME_CONFIRMATION_UPDATE where I was able to add a confirmation entry in EKES table but that is not being reflected in ME23N transaction when I display the PO.
    Please help me out on this.
    Thanks & Regards
    Pavan

    NB: Never use a standard update FM (check attributes of ME_CONFIRMATION_UPDATE) its often only a SQL statement collector without any check, logging of changes or database consistency, if you perform a where-used you should find it is never called alone but with a bunch of other update FM after checks and other update preparation.
    Get back to the BAPI and table parameter POCONFIRMATION, also use BAPI_PO_GETDETAIL1 to get current data for the call of BAPI_PO_CHANGE.
    Regards,
    Raymond
    PS: If it is not in 197958 - BAPIs for purchase orders: Missing functions, you should be able to do it

  • Standard or Customizing Bapi for T-code F-44

    Hi
    I need to clear vendor open invoices using BAPI's for T-code F-44 .I've got through various FM like <b>bapi_acc_document_post</b> and <b>bapi_ar_acc_getbalanceditems</b> but could'nt find solution because this FM's are for customer clearing the open items from table BSAD(cleared accounts of customer).Have any boby worked on this tcode to clear vendor accounts using bapi's or do we have any standard FM to use the scenario same as FM mentioned above for table BSAK(vendor clear items).
    Its really simple working with bdc's to transfer data from flat file to the above transaction.But as known every vendor has huge sets of items and this could be a huge performance issue....so to avoid this in future we need to work on this using exclusively BAPI's......Any suggestions or sample codes wud surely be appreciated....
    Thanks in Advance......

    hi,
    look here
    Re: BAPI for transaction F-03
    <b>Reward points</b>
    Regards

  • BAPI for Vendor invoice Park FV60

    Hi All,
       Do you knwo any BAPI for vendor invoice Park through FV60, I have tried
       BAPI_INCOMINGINVOICE_PARK  - Got struck where It is asking to pass teh PO data in Itme level, where as i have to uplaod only
       GLaccounts data.
      and i tryed for another  BAPI_ACC_DOCUMENT_POST   but is not working its not related to my requiremment it seems...
    Can any one know better about the process to do this.. pleas let me know..?
      Can anybody did the same, if ues please share with me... its very urgent it need it...
    Thanks,

    use bapi: BAPI_INCOMINGINVOICE_PARK

  • Getlist bapi for customer based on sales org, distbtn chnl

    Hi,
        Is there any standard BAPI for customer Getlist , i want to filter based on distribution chanel and sales org and divison.
            Now am using BAPI_CUSTOMER_GETLIST  its showing all customer list i want to filter this based on distribution chanel and sales org and divison.
    Thanks ,
    Arun

    Hi Siva : )
    In VK11 we have a key combination radio button called Country/ Destination Ctr./Plant/TaxClCust/TaxClMat.
    I think it might be a custom key combination (so you might have to create a siliar one for yourself), but basically all I had to enter there was Country = GB, Destination Coutry = GB, plant SORG1 (it's called the same as the sales org and is linked 1-1), tax classification on Customer = 2 (because I want the central setting on the customer to be 2 = ICO, no tax), tax classification on material 1 = full tax goods and enter relevat tax code.
    Hope this helps.
    It worked for me.
    Kind regards,
    Tanja

  • BAPI for Customer Payment - F-28

    Hi
    We are making one development. In that development, our requirement is after clicking one button, my F-28 (customer receipt) should be executed in background. My incoming bank account should be debited and selected invoices (i.e. customer line items) should be credited.
    My ABAPer is telling that it is possible. However it requires some BAPI. Can anyone tell me what is the BAPI for F-28.
    Please help.

    Dear:
               We successfully did the clearing procedure as well with this BAPI. We first recorded all transactional steps in F-32 through SM35. For this BAPI to successfully clear the invoice against payment we assumed full collection DZ against invoice RV. RV or invoice has a billing document number which is copied into Assignment field from copy control functionality from SD using VTFA.We book collection in F-28 with reference to invoice billing number. Hence in recording in F-32 you can process like
    Give customer number in F-32...click process open item...select all open items and then deselect them...click on find button. Fill in assignment number and then system will find the billing and its payment booked with its  reference . Clear them.
    Now you can insert this recording in ABAP code for this BAPI.
    Regards

  • Bapi for clearing reversed items of invoices

    Hi,
    Is there a BAPI for clearing invoice against its reversed item and down payment against its invoice.
    I know we can do it using BDC but was looking for a BAPI.
    I greatly appreciate feedback.

    Hi,
        Use this
    BAPI_PAYIT_POST_CLEARING
    <b>Reward points</b>
    Regards

  • Bapi for CRM service confirmation

    Hi All,
      Is there any bapi for CRm service confirmation which done trhough the transaction - CRMD_BUS2000117.
    Its urgent.
    Points will be awarded.
    Reagrds,
    vinoth.

    Hello Vinoth,
    please ask that kind of questions in the SAP CRM: Webclient UI - Framework Forum.
    What's about using CRM_ORDER_MAINTAIN? You can find many examples of it's use using the SDN search.
    Regards
    Gregor

  • BAPI for Transaction VA01?

    How to Develope an interface program to upload the sales order data from legacy system to SAP using BAPI for Transaction VA01.Explain me clearly?

    VA01:
    BAPI_SALESORDER_CREATEFROMDAT1
    BAPI_SALESORDER_CREATEFROMDAT2
    steps for bapi creation
    STEP 1 - Define a structures for the BAPI
    In this step a structures for the parameters and tables of the function module used for the BAPI are defined.
    Use Data type -> Structure
    Define the following structures:
    ZBAPI_ORDER_STATUS_IMPORT which contains the following fields:
    ORDERID Order number (Keyfield)
    SPRAS Language
    ExcludeInactive - Checkbox - Exclude inactive status
    ZBAPISTAT:
    STEP 2 - Write Function Module
    Important notes:
    Each BAPI must have its own function group.
    Under the attributes tab remember to select Processing Type Remote Enabled module, otherwise the function module cannot be invoked via RFC and used as a BAPI
    Import/Export parameters can only be BY VALUE for an RFC enabled function module
    We are only creating one BAPI in this example, but you can create related BAPIs in the same function pool, so they will be able to share global data.
    Code
    Notes:
    The subroutine SET_RETURN_MESSAGE is a standard routine used for BAPIs that use the BAPIRETURN structure
    In form Z_BAPI_GET_ORDER_SYSTEM_STATUS there is a test IF 1 = 2. If the test is true a message is displayed. The condition will obviously never be true, and we will never want to display a message in a BAPI. The reason why it is included is, that it create a reference for the message, so that the WHERE USED functionality can be used for the message. This is the SAP standard way to handle it, copied from the Company Code GetList BAPI.
    INCLUDE LZBAPISTATUSUXX
      THIS FILE IS GENERATED BY THE FUNCTION LIBRARY.             *
      NEVER CHANGE IT MANUALLY, PLEASE!                           *
    INCLUDE LZBAPISTATUSU02.
                        "Z_BAPI_GET_ORDER_SYSTEM_STATUS
    INCLUDE LZBAPISTATUSTOP - Global data
    FUNCTION-POOL ZBAPISTATUS.                  "MESSAGE-ID Z3
    Types:
      begin of Type_tj02t,
        istat  like tj02t-istat,
        txt04  like tj02t-txt04,
        txt30  like tj02t-txt30,
      end of type_tj02t.
    DATA:
    Declarations for TABLE parameter
      T_BAPISTAT like ZBAPISTAT occurs 0,
      G_BAPISTAT like ZBAPISTAT,
    Table for object texts
      t_tj02t    type type_tj02t occurs 0,
      g_tj02t    type type_tj02t.
    Structure for return messages
    DATA:
      BEGIN OF MESSAGE,
        MSGTY LIKE SY-MSGTY,
        MSGID LIKE SY-MSGID,
        MSGNO LIKE SY-MSGNO,
        MSGV1 LIKE SY-MSGV1,
        MSGV2 LIKE SY-MSGV2,
        MSGV3 LIKE SY-MSGV3,
        MSGV4 LIKE SY-MSGV4,
      END OF MESSAGE.
    INCLUDE LZBAPISTATUSF01 - Subroutines
    ***INCLUDE LZBAPISTATUSF01 .
    *&      Form  SET_RETURN_MESSAGE
    This routine is used for setting the BAPI return message.
    The routine is a standard routine for BAPIs that handles the message
    structure for the BAPIRETURN structure. It has been copied from the
    BAPI Company Code Getlist
         -->P_MESSAGE  text
         <--P_RETURN  text
    form SET_RETURN_MESSAGE USING    VALUE(P_MESSAGE)   LIKE MESSAGE
                            CHANGING P_RETURN  LIKE BAPIRETURN.
      CHECK NOT MESSAGE IS INITIAL.
      CALL FUNCTION 'BALW_BAPIRETURN_GET'
           EXPORTING
                TYPE       = P_MESSAGE-MSGTY
                CL         = P_MESSAGE-MSGID
                NUMBER     = P_MESSAGE-MSGNO
                PAR1       = P_MESSAGE-MSGV1
                PAR2       = P_MESSAGE-MSGV2
                PAR3       = P_MESSAGE-MSGV3
                PAR4       = P_MESSAGE-MSGV4
             LOG_NO     = ' '
             LOG_MSG_NO = ' '
           IMPORTING
                BAPIRETURN = P_RETURN
           EXCEPTIONS
                OTHERS     = 1.
    endform.                    " SET_RETURN_MESSAGE
    FUNCTION Z_BAPI_GET_ORDER_STATUS
    FUNCTION z_bapi_get_order_system_status.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(I_AUFNR) TYPE  AUFNR
    *"     VALUE(I_SPRAS) TYPE  SPRAS DEFAULT SY-LANGU
    *"     VALUE(I_EXCLUDEINACTIVE) TYPE  CHAR1 OPTIONAL
    *"  EXPORTING
    *"     VALUE(RETURN) TYPE  BAPIRETURN
    *"  TABLES
    *"      T_BAPISTAT STRUCTURE  ZBAPISTAT
    DATA:
       l_aufnr LIKE afko-aufnr,
       l_objnr LIKE jest-objnr.
    Check if order exists
    SELECT SINGLE aufnr
        FROM afko
        INTO  l_aufnr
        WHERE aufnr = BAPI_ORDER_STATUS_IMPORT-orderid.
      IF sy-subrc NE 0.
        CLEAR message.
        message-msgty = 'E'.
        message-msgid = 'Z3'.
        message-msgno = '000'.
        message-msgv1 = BAPI_ORDER_STATUS_IMPORT-orderid.
        PERFORM set_return_message USING    message
                                   CHANGING return.
        IF 1 = 2.
        The only reason to include this statement, that will obviously
        never execute, is that it will create a referecence so that you
        can find out where a particular message is being used. This
        functionality is used by the BAPIs programmed by SAP
          MESSAGE e000(z3).
        ENDIF.
      ENDIF.
      CHECK return IS INITIAL.
    Read order status
    CONCATENATE 'OR' BAPI_ORDER_STATUS_IMPORT-orderid INTO l_objnr.
      IF BAPI_ORDER_STATUS_IMPORT-i_excludeinactive = 'X'.
        SELECT objnr stat inact
          FROM  jest
          INTO  TABLE t_bapistat
          WHERE objnr = l_objnr AND
                inact  'X'.
      ELSE.
        SELECT objnr stat inact
          FROM  jest
          INTO  TABLE t_bapistat
          WHERE objnr = l_objnr.
      ENDIF.
      IF sy-subrc  0.
      No object status found
        CLEAR message.
        message-msgty = 'E'.
        message-msgid = 'Z3'.
        message-msgno = '001'.
        message-msgv1 = BAPI_ORDER_STATUS_IMPORT-orderid.
        PERFORM set_return_message USING    message
                                   CHANGING return.
        IF 1 = 2.
          MESSAGE e001(z3).
        ENDIF.
      ENDIF.
      CHECK return IS INITIAL.
    Read order status texts
      SELECT istat txt04 txt30
        FROM tj02t
        INTO TABLE t_tj02t
        FOR ALL ENTRIES IN t_bapistat
        WHERE istat = t_bapistat-stat AND
              spras = BAPI_ORDER_STATUS_IMPORT-i_spras.
      SORT t_tj02t BY istat.
      LOOP AT t_bapistat INTO g_bapistat.
        READ TABLE t_tj02t
          WITH KEY istat = g_bapistat-stat BINARY SEARCH
         INTO g_tj02t.
        IF sy-subrc = 0.
          MOVE:
            g_tj02t-txt04 TO g_bapistat-txt04,
            g_tj02t-txt30 TO g_bapistat-txt30.
          MODIFY t_bapistat FROM g_bapistat TRANSPORTING txt04 txt30.
        ENDIF.
    ENDLOOP.
    ENDFUNCTION.
    OBJNR like JEST-OBJNR
    STAT like JEST-STAT
    INACT like JEST-INACT
    TXT04 like TJ02T-TXT04
    TXT30 likeTJ02T-TXT30
    Important note:
    You will have to define a structure for every parameter in the BAPI. You cannot use the same structures used in existing applications because BAPI structures are frozen when BAPIs are released and then there are restrictions on changing them.
    STEP 3 - Create the API Method Using the BAPI WIZARD
    The BAPI wizard is used toTo expose the remote function module as a BAPI. The wizard will generate some additional code, so the function module is a valid method of the BOR. This allows the BAPi to be called as a workflow method in addition to be called by an outside program.
    Note: Each function module corresponds to a method in the BOR
    Go to the Business Object Builder SWO1.
    You can either create the new Object type as a subtype of an existing business object or create a new business object from scratch. In this example it would be obvious to create the Object type as a subtype of BUS2005 Production order. However, to illustrate how to create a new Object type from scratch, we will do this.
    In the Object/Interface type field write the name of the new Business Object: ZORDERSTAT. Press enter and fill in the additional fields necessary to create the object type.
    Supertype: Not relevant because we are creating our object from scratch
    Program. This is the name of the program where the wizard generates code for the Object type, NOT the function module we created earlier. The program name must not be the name of an existing program.
    Press enter and create the new business object. Note that when you create the business object a standard interface, an attribute ObjectType and the methods ExistenceCheck and Display are automatically generated. These cannot be changed !
    The next step is to add the Z_BAPI_GET_ORDER_STATUS method to the business object. Select Utilities -> API methods -> Add method and write the name of the function module in the dialog box. Next the dialog ox show below will be shown. This is the start screen of the BAPI wizard. Proceed with wizard by pressing the button.
    After you have finished the wizard, you will notice that the ZGetOrderStatus has been added to the business object:
    You can double-click on the method to see its properties. To use the business object you must change the Object type status to Implemented. Use menu Edit->Change releases status->Object type->To implemented. No you can test the object (Press F8).
    Note that the BAPI wizard has added a wrapper class for the function module so it can be sued as method in the business object. Choose menu Goto->Program to display the program:
              Implementation of object type ZORDERSTAT           *****
    INCLUDE <OBJECT>.
    BEGIN_DATA OBJECT. " Do not change.. DATA is generated
    only private members may be inserted into structure private
    DATA:
    " begin of private,
    "   to declare private attributes remove comments and
    "   insert private attributes here ...
    " end of private,
          KEY LIKE SWOTOBJID-OBJKEY.
    END_DATA OBJECT. " Do not change.. DATA is generated
    BEGIN_METHOD ZGETORDERSTATUS CHANGING CONTAINER.
    DATA:
          BAPIORDERSTATUSIMPORT LIKE ZBAPI_ORDER_STATUS_IMPORT,
          RETURN LIKE BAPIRETURN,
          TBAPISTAT LIKE ZBAPISTAT OCCURS 0.
      SWC_GET_ELEMENT CONTAINER 'BapiOrderStatusImport'
           BAPIORDERSTATUSIMPORT.
      SWC_GET_TABLE CONTAINER 'TBapistat' TBAPISTAT.
      CALL FUNCTION 'Z_BAPI_GET_ORDER_STATUS'
        EXPORTING
          BAPI_ORDER_STATUS_IMPORT = BAPIORDERSTATUSIMPORT
        IMPORTING
          RETURN = RETURN
        TABLES
          T_BAPISTAT = TBAPISTAT
        EXCEPTIONS
          OTHERS = 01.
      CASE SY-SUBRC.
        WHEN 0.            " OK
        WHEN OTHERS.       " to be implemented
      ENDCASE.
      SWC_SET_ELEMENT CONTAINER 'Return' RETURN.
      SWC_SET_TABLE CONTAINER 'TBapistat' TBAPISTAT.
    END_METHOD.
    STEP 4 - Final stepsWhen the Business object has been checked and the documentation created, the following steps must be carried out:
    Release the BAPI function module (in the Function Builder).
    Release the business object type (in the BOR ObjectType -> Change release status to -> Implemented ).
    Release the BAPI as a method in the BOR (Release the methods you has created - Set the cursor on the method then
    Edit -> Change release status -> Object type component -> To released )
    For potential write BAPIs: Release the IDoc and its segments
    You can now display the BAPI in the BAPI Explorer:
    for detailed expalnation
    http://www.erpgenie.com/abap/bapi/example.htm
    do reward if helpful

  • BAPI for Non PO Invoice posting?

    Hi Experts,
       I am posting invoices using BAPI_INCOMINGINVOICE_CREATE. These invoices have POs associated with the Item Details. This is working fine for me.
       I want to post invoices that DO NOT have a PO. Can someone please point me to a BAPI that is similar to BAPI_INCOMINGINVOICE_CREATE in functionality but does not require a PO?
    Thanks,
    - Vik.

    I too was looking for a BAPI for non PO invoice posting.  I found that the above counsel did not work for me.  Instead of creating a buyside invoice, it just created a journal entry.  What DID work for me was BAPI_ACC_INVOICE_RECEIPT_POST.
    Below, I am pasteing the subroutines that I created for its calling.  In it, for my purposes, only the invoice amount is parameter driven.  My needs allowed all other BAPI parameters to stay the same.
    I hope that this helps someone.
    Donald Nigro
    FORM create_buyside_invoice USING value(invoice_amt) TYPE p.
      DATA:
        gd_documentheader  LIKE bapiache03,
        it_accountpayable  LIKE bapiacap03 OCCURS 0 WITH HEADER LINE,
        it_accountgl       LIKE bapiacgl03 OCCURS 0 WITH HEADER LINE,
        it_accounttax      LIKE bapiactx01 OCCURS 0 WITH HEADER LINE,
        it_currencyamount  LIKE bapiaccr01 OCCURS 0 WITH HEADER LINE,
        it_return          LIKE bapiret2   OCCURS 0 WITH HEADER LINE.
      DATA:
      wa_obj_key(20)  TYPE c.
    fill header
      gd_documentheader-username   =  sy-uname.
      gd_documentheader-header_txt = 'E-Payables Invoice'.
      gd_documentheader-comp_code  = 'EAUS'.
      gd_documentheader-doc_date   =  sy-datum.
      gd_documentheader-pstng_date =  sy-datum.
      gd_documentheader-doc_type   = 'KR'.
      CONCATENATE 'BOA' sy-datum sy-uzeit(4)
                   INTO gd_documentheader-ref_doc_no.
    fill AP (line 1)
      it_accountpayable-itemno_acc = 1.
      IF sy-sysid(3) = 'DEV'.
        it_accountpayable-vendor_no  = '0600013370'.
      ELSE.
        it_accountpayable-vendor_no  = '0600009022'.
      ENDIF.
      APPEND it_accountpayable.
    fill GL (line 2)
      it_accountgl-itemno_acc      =  2.
      it_accountgl-gl_account      = '0001112227'.
      it_accountgl-comp_code       = 'EAUS'.
      it_accountgl-pstng_date      =  sy-datum.
      it_accountgl-fisc_year       =  sy-datum(4).
      it_accountgl-fis_period      =  sy-datum+4(2).
      it_accountgl-bus_area        = '0100'.
      APPEND it_accountgl.
    fill currency ammounts for lines 1 & 2
      it_currencyamount-currency    = 'USD'.
      it_currencyamount-itemno_acc  = 1.
      it_currencyamount-amt_doccur  = invoice_amt * -100.
      APPEND it_currencyamount.
      it_currencyamount-itemno_acc  = 2.
      it_currencyamount-amt_doccur  = invoice_amt *  100..
      APPEND it_currencyamount.
      CALL FUNCTION 'BAPI_ACC_INVOICE_RECEIPT_CHECK'
           EXPORTING
                documentheader = gd_documentheader
           TABLES
                accountpayable = it_accountpayable
                accountgl      = it_accountgl
                accounttax     = it_accounttax
                currencyamount = it_currencyamount
                return         = it_return.
      PERFORM invoice_error_check TABLES it_return.
      CALL FUNCTION 'BAPI_ACC_INVOICE_RECEIPT_POST'
           EXPORTING
                documentheader = gd_documentheader
           IMPORTING
                obj_key        = wa_obj_key
           TABLES
                accountpayable = it_accountpayable
                accountgl      = it_accountgl
                accounttax     = it_accounttax
                currencyamount = it_currencyamount
                return         = it_return.
      PERFORM invoice_error_check TABLES it_return.
      COMMIT WORK.
      WRITE: / 'ePayables Bank of America'.
      WRITE: / '  Invoice Document Number:',
                  wa_obj_key(10).
    ENDFORM.
         Form  invoice_error_check
    FORM invoice_error_check TABLES it_return STRUCTURE bapiret2.
      DATA:
      bapi_success(5) TYPE c VALUE 'false'.
      LOOP AT it_return.
        IF it_return-type = 'S' AND bapi_success = 'false'.
          bapi_success = 'true'.
        ENDIF.
      ENDLOOP.
      IF bapi_success = 'false'.
        WRITE: / 'Unable to post a buyside invoice with',
                 'BAPI_ACC_INVOICE_RECEIPT_POST'.
        LOOP AT it_return.
          WRITE: / 'Message Type:   ', it_return-type,
                 / 'Message Class:  ', it_return-id,
                 / 'Message Number: ', it_return-number,
                 / 'Message:        ', (80) it_return-message.
        ENDLOOP.
        ROLLBACK WORK.
        STOP.
      ENDIF.
    ENDFORM.

  • Bapi for invoice create

    hi ,
    i want to create invoice ..the reference number will be delivery...is there any bapi/fm to do this..i tried bapi_billingdocu_createmultiple..but its not working..if there isn't any bapi what isthe other way...its an urgent thing..thank you..
    Thanks,
    Challa

    Check this thread for more details. It gives different aspects of creating Invoice document using BAPI for various scenarios.
    Re: invoice creation through BAPI

  • BAPI for creating variant table

    Hi,
    Cu61 and Cu60 are two transactions in SAP (comes under Variant Configuration) to create a variant table and fill its contents respectively.
         Now, I am trying to create a transaction in SAP such that on the screen it takes the name of the variant table to be created and an excel file as input from the user and thus create a variant table and fill its contents in the background. Now, ofcourse I have to do this through ABAP coding. I know how to upload the excel file into the internal table but I am not able to figure out that how should i create the variant table and transfer the contents of that internal table to the variant table? That is, how should i transfer the contents to the variant table?
    I have been able to find out the tables involved in the process viz, CUVTAB, CUVTAB_FLD, CUVTAB_VALC.
    Does there exist any BAPI for doing the same?
    Please Help.

    Hi Reema,
       Thanks for replying but this is not what I am looking for. I do not want to create a cluster table rather I want to create a variant table (it is a table used in variant configuration to store the combinations of a material whose characteristics can take varying values at the time of configuration). A table that we create through the transaction Cu61 and populate its contents through the transaction Cu60.
    However, I still tried your suggestion but it did not result in what I want.
    My problem still exists.

Maybe you are looking for