Rounding Up to be done at Header Level.

Hi experts,
I want to carry out rounding up at header level where there will be a multiple line items.
E.G. Condition type JEXP (BED) is a item condition . There are two line items in a sales order and duty applied is Rs. 1.40 per item. Now system is carrying out rounding up at item level i.e. Rs. 1.40 is taken as Rs. 1per line item and total duty becomes Rs. 2 . Instead it should be Rs. 2.80(Rs. 1.40 per item) and after rounding up it should  be Rs. 3. Same rounding should be carried out for all condition type.
Please guide on the same.
Regards ,
Pallavi

Hello,
You cannot do Rounding-up at Header level for Item level conditions.
If you have Header Conditions, you can do Rounding at Header Level.
What you can do is setting Rounding for your Condition Type at Item Level (by Rounding Rule in Condition Defination) & also by applying a Routine 13.
Hope this helps,
Thanks,
Jignesh Mehta

Similar Messages

  • Don't heading levels convert to TOC?

    I just upgraded to RH7 from RH5. I'm on XP Pro 2002 SP 2, RH
    for Word v 7.0 Build 145. I've got a Word file I'm converting to
    FlashHelp. The word file has headings H1 H2 H3 tagged. I swear, in
    RH5 (it's been a while) when I imported, the topics broke at the
    headings and arranged themselves according to heading level; the
    TOC was indented to three levels where necessary and followed the
    chronological order of content in the Word file. Now in RH7 all the
    topics come in and don't appear in the TOC indented according to
    heading level. Was I hallucinating? I'd check RH5 myself but it no
    longer works on my cptr and Adobe won't support it. Last, I can't
    get the TOC to keep my topics in chronological order. My section A
    has only one level; my section B has three levels, etc and RH wants
    to put all the single-level topics together. Is there a way I can
    get my conversion and my TOC to behave the way I swear it behaved
    in RH5?

    You either use
    the Export PDF function in the Tools panel on Adobe Reader
    do the conversion online after signing in to the https://cloud.acrobat.com/exportpdf site
    [topic moved to ExportPDF forum]

  • Rounding of sales tax at header level

    HI
    I want to roundoff tax at header level . we already using the tax rounding off at item level .
    But new requirement is instead of Item level roundoff , they want the roundoff at header level
    Plz provide solutions

    Hi
    U have 2 options
    1. Conversion rule(OY04)
    2. SPRO-Ref IMG-Global setting Data- Conversion  Rule
    or once u r maintaining the condition record for Tax value (FV11/ vK11/Vk19)
    there u can find rounding rule.
    thanks
    mk

  • Rounding at Header Level in Sales order

    Hi all SD Expert,
    Question:
    Can rounding mechanism be applied at Header level in Sales Order?
    Summary:
    The government of Malaysia have implemented the rounding mechanism to the nearest multiple of 5 cents over the counter transaction. This mechanism shall apply to the total amount of a bill.
    Example:
    - $1.01 or $1.02 will be rounded down to $1.00
    - $1.03 or $1.04 will be rounded up to $1.05
    - $1.06 or $1.07 will be rounded down to $1.05
    - $1.08 or $1.09 will be rounded up to $1.10
    refer http://www.bnm.gov.my/index.php?ch=209&pg=657&ac=567 for more info
    My Problem:
    SAP Note 1165950 suits well enough for 1 item per sales order.
    Example:
    Total Bill =  $1.38 (posted to a dedicated G/L account)
    Rounding Adjustment = +0.02 (posted to a dedicated G/L account)
    Total customer to pay = $1.40
    But, if I have 2 or more item per sales order, my rounding mechanism does not meet the requirement. Example:
    Item 1:
    Total Bill =  $1.38 (posted to a dedicated G/L account)
    Rounding Adjustment = +0.02 (posted to a dedicated G/L account)
    Total customer to pay = $1.40
    Item 2:
    Total Bill =  $1.38 (posted to a dedicated G/L account)
    Rounding Adjustment = +0.02 (posted to a dedicated G/L account)
    Total customer to pay = $1.40
    Total Item 1 + Item 2 shown in header level  = $2.80
    In Header Level, the rounding figure shows +0.04 (rounding adjustment item 1 + item 2). I dont want my sales order to round the value at item level.
    The correct calculation to suit the regulation is:
    Item 1 + Item 2: $1.38 + $1.38 = $2.76
    Rounding Adjustment at Header: -0.01
    Total customer to pay = $2.75
    can someone help me?
    TQ
    Ezwardi

    Dear Tengku
    Please try with this.
    Go to V/08, for the net value field, maintain Routine 16 in the Alt. Cal. Type. Also add Routine 17 to Netvalue.
    As you know Condition types are assigned at each item level. So rounding off is calculated at each item level. But by assigning a tick in the Group Condition while defining Rounding off Condition, you can do rounding off at invoice level. The difference is automatically adjusted at each item.
    thanks
    G. Lakshmipathi

  • Price Condition at the Header Level

    Dear SAPfans,
    Can we set the pricing procedure at the header level of sales order,
    i would like to configure the rounding mechanism work  on the header condition on the sales order, can it be done thru pricing procedure ?

    Hi,
    You can make condition type either header or item level.
    header level coniditon type doesnt have access sequence and you generally enter the value manually.
    You can use this condition type in Pricing procedure.
    Check all about Condition type in V/06
    Hope this will help.
    Reward Point if helpful.
    Thanks,
    Raja

  • PO HEADER LEVEL의 TOTAL AMOUNT 계산 LOGIC

    제품 : MFG_PO
    작성날짜 : 2004-10-13
    PO HEADER LEVEL의 TOTAL AMOUNT 계산 LOGIC
    ==========================================
    PURPOSE
    Purchase Order 화면의 Header level에 보여주는 Total Amount 계산 logic을
    알아본다.
    Explanation
    Purchase Order 화면에서 PO를 입력하거나 조회해 본 사람은 PO Header level
    에 보이는 Total amount 값은 어느곳에도 저장되지 않는다는 것을 확인 할
    수 있을 것이다.
    이 header level total amount 계산 logic은 다음과 같다.
    1.Purchase Order 화면에서 price와 quantity가 입력될 때 POXPOPOL.pld에
    있는 maintain_po_total이 불려진다.
    이 maintain_po_total procedure는 line amount를 뿌려주기 위해 line에
    정의된 quantity와 price를 고려한다.
    이 line amount sum 되고, header total에 뿌려준다.
    sum(round((quantity*unit_price),precision))-> Header_total
    2.PO를 query 할 때 header amount를 조회하기 위해 POXCOCOB.pls의
    po_core_s.get_total procedure가 불려진다.
    아래의 query가 PO header level total amount 계산을 하게 된다.
    SELECT sum(round((pll.quantity - nvl(pll.quantity_cancelled,0))*
    nvl(pll.price_override,0),x_precision))
    FROM PO_LINE_LOCATIONS PLL
    WHERE PLL.po_header_id = <<po_header_id>>
    AND PLL.shipment_type in ('STANDARD','PLANNED','BLANKET')
    여기에서 precision은 PO.(PO Currency = Functional Currency)에서 사용
    되는 것으로 fnd_currencies에 정의된 currency이다.
    Example
    Reference Documents
    Note 226697.1

    Thought so.
    And therein lies your problem.
    You should avoid updating Oracle tables directly unless you are 100% sure that no relationships are getting violated.
    Updating po line price should be done via interface. I would suggest that you use the po documents interface to change the po line prices. Then you will see the header totals get updated automatically.
    Hope this answers your question
    Sandeep Gandhi
    Independent Consultant
    513-325-9026

  • Purchase Order Total Amount at Header level and Report Execution

    Dear Experts,
    Here by i am facing problem with Purchase Order Total amount.
    I have local Pricing Procedure for price stipulations (like discounts, Freight, packaging). the calculation at item level is correct. tax calculation is done by tax code. The total PO Price is including all items in PO and tax amount. But at header level conditions net value is showing only gross price.
    How to pick up total price including tax amount at header level conditions?
    Please provide me solution on it ?

    Dear Experts,
    Here by i am facing problem with Purchase Order Total amount.
    I have local Pricing Procedure for price stipulations (like discounts, Freight, packaging). the calculation at item level is correct. tax calculation is done by tax code. The total PO Price is including all items in PO and tax amount. But at header level conditions net value is showing only gross price.
    How to pick up total price including tax amount at header level conditions?
    Please provide me solution on it ?
    Edited by: Kiran Mujumdar on Feb 23, 2009 7:08 PM

  • Billing plan (Downpayment) for saved and open sales orders at header level?

    Hi gurus,
    I have configured billing plan in my SD environment at Item Level.
    I want to change it to header level.
    Questions:
    1- When I make the changes to update the system to have billing plan at header level for future sales orders, is that possible for me to change all my saved orders and open orders with the new settings so that I can also have those saved and open orders with a billing plan at item level?
    2- If that scenario is not possible, could we for example copy the data of a previously saved or open sales order into a new sales order with the new customizing (Billing plan at Header level?)
    Thanks for your input
    Kind regards
    Chris

    Hi
    I am afraid you cannot do that converstion for the existing orders. BP at header level are enabled at teh document type level, while BP at item level is done at item category. So both are independent. Mostly it is advisabel to use BP at item level only.
    If you are already using item level BP, and want to mvoe to header BP, then only future transactions can be executed with BP at header level. Existing item level BPlans will remain so in the system.

  • Down Payment Request at Header Level of PO

    Dear Friends
    We want to create Down Payment Request and subsequently the Down Payment at Purchase Order Header Level. We are looking for a standard solution without any Custom Development.
    While creating a Down Payment Request (F-47) the system does not ask for the reference of the Purchase Order. But if Purchase Order Number is referred then the system will ask for the line item also.
    When we convert this Down Payment Request to Down Payment (F-48), we can refer the Purchase Order Number. If referred, the system asks for the line item also, which becomes mandatory.
    However we want to understand if there is a possibility of posting the Down Payment against the Purchase Order Header.
    This is required, since if there are multiple line items in the purchase order, then creation of Down Payment Request as well as Down Payment becomes a tedious activity in SAP.
    Someone innovative and has already worked on such requirement please reply.
    Regards
    Ketan Patel

    Hi,
    Try the following steps to pay to Vendor w.r.t PO:
    1.Check the Vendor reconciliation A/C,
    2.Go to FS00, and check Filed Status Group,
    3.Go to OBC4, check the Filed Status Group, what u have mentioned for the Vendor reconciliation account.
    4. Go To material management segment and put optional entry for the field of Purchase Order and save.
    5.Now come to F-48, enter the date, vendor, assign the sp.G/L transaction(A),bank sub account, amount,
    then enter, it will take to next screen
    Here you enter amount & your purchase order number with reference to your are going to make the payment. Now simulate and save.
    After the GR & IR is done, Perform F-54 for Down Payment Clearing
    Regards,
    Biju K

  • Release of PO at header level

    why is that we release PR at "ITEM" leval and PO at "HEADER" level ??? 
    is that because PO is been created with reference to a specific vendor so we do it in the header level
    in PR we issue it for all the materials so it is done at item level
    is tht the right explanation or do we have any ?? please help
    regards
    Pavan

    Hi,
    PR is an internal document. Suppose if you have 3 line items in a PR you will release 1 line item and PO can be created for the particular line item (PO with reference to PR).
    Where in PO is an external document and has to be released at Header level.
    Regards,
    Nagaraja Achar

  • Two production  orders at the header level one for one single requirement

    Hi Gurus, Please provide me your valuable suggestion on the issue.
    *Client wants to have a only two production  orders at the header level one for one single requirement .*
    1) Manufacturing Order u2013 In this order for Finsihed prodcut system should pick all the assemblies whcih are manufactured inside i.e depending on the material type.\
    2) Assembly order u2013 In this order system should pick all the assemblies whicih need to be assembled also procured or subcontracted items in this order against depending on the material type.
    It means for Sales order of  5 EA there is going to be only 2 order ( MFG & assy order).
    For Example.
    L45-7000 is the header material now client wants only two production orders one Manufacture order and anothe Assmebly order , thet dont want to use Phantom assembly concept and also multiple production orders for  SFG.
    Please confirm if this requirement can be mapped in SAP ?
    Thanks...

    Hi Shishir,
    As soon as each order is related to only one material, if your manufactured (or purchased) assemblies are of different materials, you will have a separate order for each material rather than a single order for all manufactured assemblies. I don't thing all your assemblies are of the same material - thus I would say no, it is not possible to map your requirement.
    Regards,
    Sergiy

  • Custom field at Header level in Additional Data B tab of VA01/VA02

    Kindly help me out , I have a requirement to add a custom field at Header level in Additional Data B tab of VA01/VA02.
    Program: SAPMV45A
    screen 8459
    This can be done only through access key or not. Can any body tell me procedure to do that.
    Appreciate your response.Thanks in advance

    Please help me out this

  • BADI enhancement for Enjoy PO Tcodes at "header level".

    I could successfully add an item level tab to MEXXN PO tcodes. Somebody help me with the ME_GUI_PO_CUST and ME_PROCESS_PO implementations to add a customer field , say ZZ_ETYP in a separate header level tab "Expense type".
    Do I need to add subscreen2 attribute to the implementing class ?
    Will one structure do for both header and item level data ?
    Do I need to create a separate table ( like ZMEPO_BADI_EXAMPL for items ) for the header also ?
    It would be gr8 if i could get the code for the above BADIs and MEPOBADIEX's function modules.

    Dear Iyer,
    Kindly go through the code.. hope this will help you...
    <b>DETAILED DATABASE DESIGN SPECIFICATIONS</b>
    <b>1. ZTPTP_HEADER</b>
    Header: Expense Type
    Field Name     Field Type     Key Information     Field Description
    MANDT     MANDT     X     Client
    EBELN     EBELN     X     Purchasing Document Number
    ZZ_EXPTYPE     ZZEXPTYPE          Expense Type
    <b>2. ZTPTP_ITEM</b>
    Item: Retainage
    Field Name     Field Type     Key Information     Field Description
    MANDT     MANDT     X     Client
    EBELN     EBELN     X     Purchasing Document Number
    EBELP     EBELP     X     Item Number of Purchasing Document
    ZZ_RETAINAGE      ZZRETAINAGE           Retainage
    <b>3. ZSPTP_HEADER</b>
    PO Enhancement structure: Header
    Field Name     Field Type     Key Information     Field Description
    EBELN     EBELN          Purchasing Document Number
    ZZ_EXPTYPE     ZZEXPTYPE          Expense Type
    <b>4. ZSPTP_ITEM</b>
    PO Enhancement structure: Item
    Field Name     Field Type     Key Information     Field Description
    EBELN     EBELN          Purchasing Document Number
    EBELP     EBELP          Item Number of Purchasing Document
    ZZ_RETAINAGE      ZZRETAINAGE           Retainage
    Detailed logic
    <b>LZPTP_PORETAINAGETOP (TOP INCLUDE) FG: ZPTP_PORETAINAGE</b>
    persistent item data
    data: git_persistent_data type sorted table of ztptp_item
                             with unique key mandt ebeln ebelp,
    actual item data
          git_data            type sorted table of ztptp_item
                             with unique key mandt ebeln ebelp.
    persistent header data
    data: git_persistent_head type sorted table of ztptp_header
                             with unique key mandt ebeln ,
    actual header data
          git_head            type sorted table of ztptp_header
                             with unique key mandt ebeln .
    dynpro output structure
    tables: zsptp_item,
            zsptp_header.
    definitions required for dynpro/framework integration
    data: ok-code type sy-ucomm.
    Following is a SAP include.
    include lmeviewsf01.
    <b>1. ZPTP_COMMIT_HEADER FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_COMMIT. In this Function module we update the database table ZTPTP_HEADER i.e. as per a change / insert or delete command at the header level. This database table’s size will always be low. It just contains the PO s data just being edited or created.
    The interface would look like:
         TABLES
          IMT_DATA_NEWHD STRUCTURE ZTPTP_HEADER
          IMT_DATA_OLDHD STRUCTURE ZTPTP_HEADER
          Comparing the old and new data we update 3 different internal tables and using these we can update the internal tables ZTPTP_HEADER before actually updating the database table EKKO.A similar logic is coded in the sample FM : MEPOBADIEX_COMMIT
    <b>
    2. ZPTP_COMMIT_ITEM FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_COMMIT. In this Function module we update the database table ZTPTP_HEADER i.e. as per a change / insert or delete command at the item level. This database table’s size will always be low. It just contains the PO s latest data just being edited or created.
    The interface would look like :
         TABLES
           IMT_DATA_NEW STRUCTURE  ZTPTP_ITEM
      IMT_DATA_OLD STRUCTURE  ZTPTP_ITEM
          Comparing the old and new data we update 3 different internal tables and using these we can update the internal tables ZTPTP_HEADER before actually updating the database table EKPO. A similar logic is coded in the sample FM : MEPOBADIEX_COMMIT
    <b>3. ZPTP_GET_DATA_HEADER FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_GET_DATA. This FM is responsible for updating an internal table (git_head) which would hold the data the user has changed or created or displayed till the current point of time. It would also hold the latest customer header data that is to be displayed in case of a change transaction.
    The interface would be as follows:
    Local Interface:
    IMPORTING
         REFERENCE(IM_EBELN) TYPE  EBELN
         REFERENCE(IM_EBELP) TYPE  EBELP OPTIONAL
    EXPORTING
         REFERENCE(EX_HEAD) TYPE  ZTPTP_HEADER
    Read expense type from git_header. If not found, get expense value from EKKO.
    <b>4. ZPTP_GET_DATA_ITEM FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_GET_DATA. This FM is responsible for updating an internal table (git_data) which would hold the data the user has changed or created or displayed till the current point of time. It would also hold the latest customer item data that is to be displayed in case of a change transaction.
    The interface would be as follows:
    Local Interface:
      IMPORTING
         REFERENCE(IM_EBELN) TYPE  EBELN
         REFERENCE(IM_EBELP) TYPE  EBELP
      EXPORTING
         VALUE(EX_DATA) TYPE  ZTPTP_ITEM
    Read Retainage from git_data. If not found, get Retainage value from EKPO.
    <b>5.  ZPTP_INIT FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_INIT. This FM is responsible for clearing the header and item internal tables.
    clear: git_persistent_data[], git_data[],git_persistent_head[],git_head[].
    <b>6. ZPTP_OPEN FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_OPEN.  This FM is responsible for existing information from respective database tables.
    The interface would be as follows:
    Local Interface:
    IMPORTING
    REFERENCE(IM_EBELN) TYPE  EBELN
    Get Expense type and Retainage from customer created Tables and assign it to respective global internal tables.
    <b>7.  ZPTP_POP_HEADER FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_POP. This FM is responsible for getting header values from screen fields.
    The interface would be as follows:
    Local Interface:
    EXPORTING
       REFERENCE(EX_DYNP_DATAHD) TYPE  ZSPTP_HEADER
    get dynpro data
      ex_dynp_datahd = zsptp_header.
    <b>8.  ZPTP_POP_ITEM FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_POP. This FM is responsible for getting item values from screen fields.
    The interface would be as follows:
    Local Interface:
    EXPORTING
       REFERENCE(EX_DYNP_DATA) TYPE  ZSPTP_ITEM
    get dynpro data
      ex_dynp_data = zsptp_item.
    <b>9.  ZPTP_POST_HEADER FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_POST. This FM is responsible for preparing header data for posting.
    Local Interface:
    IMPORTING
       VALUE(IM_EBELN) TYPE  EBELN
    prepare customers data for posting
      check not im_ebeln is initial.
      lit_data_newhd[] = git_head.
      lit_data_oldhd[] = git_persistent_head.
      lwa_head-mandt = sy-mandt.
      lwa_head-ebeln = im_ebeln.
      modify lit_data_newhd from lwa_head transporting mandt ebeln where ebeln is initial.
    Commit data in Database ztptp_header.
      call function 'ZPTP_COMMIT_HEADER'
        tables
          imt_data_newhd = lit_data_newhd
          imt_data_oldhd = lit_data_oldhd.
    <b>10. ZPTP_POST_ITEM FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_POST. This FM is responsible for preparing item data for posting.
    "Local Interface:
    IMPORTING
        VALUE(IM_EBELN) TYPE  EBELN
      data: lwa_data like line of git_data,
            lit_data_new type standard table of ztptp_item,
            lit_data_old type standard table of ztptp_item.
    prepare customers data for posting
      check not im_ebeln is initial.
      lit_data_new[] = git_data.
      lit_data_old[] = git_persistent_data.
      lwa_data-mandt = sy-mandt.
      lwa_data-ebeln = im_ebeln.
      modify lit_data_new from lwa_data transporting mandt ebeln where ebeln is initial.
    Commit data in Database ztptp_item.
      call function 'ZPTP_COMMIT_ITEM' in update task
        tables
          imt_data_new = lit_data_new
          imt_data_old = lit_data_old.
    <b>11.  ZPTP_PUSH_HEADER FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_PUSH. This FM is responsible for populating header values to screen fields.
    Local Interface:
      IMPORTING
         REFERENCE(IM_DYNP_DATAHD) TYPE  ZSPTP_HEADER
    set dynpro data
      zsptp_header = im_dynp_datahd .
    <b>12.  ZPTP_PUSH_ITEM FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_PUSH. This FM is responsible for populating item values to screen fields.
    Local Interface:
    IMPORTING
       REFERENCE(IM_DYNP_DATA) TYPE  ZSPTP_ITEM
    set dynpro data
      zsptp_item = im_dynp_data .
    <b>13. ZPTP_SET_DATA_HEADER FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_SET_DATA. This FM is responsible for keep update header  information in git_header.
    delete a line from git_data
        delete table git_head with table key mandt = sy-mandt
                                            ebeln = im_datahd-ebeln.
    update customer data
        read table git_head assigning <lf_datahd> with table key
                                            mandt = sy-mandt
                                            ebeln = im_datahd-ebeln.
        if sy-subrc is initial.
    update existing data
          <lf_datahd>-zz_exptype = im_datahd-zz_exptype.
        else.
    make a new entry into the data table
          lwa_head = im_datahd.
          lwa_head-mandt = sy-mandt.
          insert lwa_head into table git_head.
        endif.
    <b>14. ZPTP_SET_DATA_ITEM FG: ZPTP_PORETAINAGE</b>
    Get the sample function module code from the standard FM: MEPOBADIEX_SET_DATA. This FM is responsible for keep update item information in git_data.
    delete a line from git_data
        delete table git_data with table key mandt = sy-mandt
                                            ebeln = im_data-ebeln
                                            ebelp = im_data-ebelp.
    update customer data
        read table git_data assigning <lf_data> with table key
                                            mandt = sy-mandt
                                            ebeln = im_data-ebeln
                                            ebelp = im_data-ebelp.
        if sy-subrc is initial.
    update existing data
          <lf_data>-zz_retainage = im_data-zz_retainage.
        else.
    make a new entry into the data table
          lwa_data = im_data.
          lwa_data-mandt = sy-mandt.
          insert lwa_data into table git_data.
        endif.
    <b>DETAILED SCREEN DESIGN SPECIFICATIONS</b>
    <b>screen 0002</b>
    Item Retainage
    ZSPTP_ITEM-ZZ_RETAINAGE     DEC     5     Retainage
    Screen Logic / Process before Output
      call method call_view->handle_event( 'PBO' ).
    Screen Logic / Process after Input
    call method call_view->handle_event( 'PAI' )
    <b>Screen 0003</b>
    Header: Expense type
    ZSPTP_HEADER-ZZ_EXPTYPE     NUMC     4     Expense Type
    Screen Logic / Process before Output
      call method call_view->handle_event( 'PBO' ).
    Screen Logic / Process after Input
    call method call_view->handle_event( 'PAI' )
    <b>DETAILED CLASS DESIGN SPECIFICATIONS</b>
    <b>A. ZCL_IM_ME_GUI_PO_CUST</b>
    Description
    Imp. Class ZME_GUI_PO_CUST
    Attributes
    Name     Level     Visibility     Type
    SUBSCREEN1     Constant     Public     MEPO_NAME
    SUBSCREEN2     Constant     Public     MEPO_NAME
    DYNP_DATA_PBO     Instance Attribute     Private     ZSPTP_ITEM
    DYNP_DATA_PAI     Instance Attribute     Private     ZSPTP_ITEM
    DYNP_DATA_PBOHD     Instance Attribute     Private     ZSPTP_HEADER
    DYNP_DATA_PAIHD     Instance Attribute     Private     ZSPTP_HEADER
    Methods
    Name     Level     Visibility
    IF_EX_ME_GUI_PO_CUST~SUBSCRIBE     Instance Attribute     Public
    IF_EX_ME_GUI_PO_CUST~MAP_DYNPRO_FIELDS     Instance Attribute     Public
    IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_MODEL     Instance Attribute     Public
    IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_DYNP     Instance Attribute     Public
    IF_EX_ME_GUI_PO_CUST~TRANSPORT_FROM_DYNP     Instance Attribute     Public
    IF_EX_ME_GUI_PO_CUST~TRANSPORT_TO_MODEL     Instance Attribute     Public
    <b>1. SUBSCRIBE</b>
    Description
    Publisch Customer's Own Screens
    Detailed logic
      when lc_item.
    the name is a unique identifier for the subscreen and defined in this class definition
      lwa_subscriber-name = subscreen1.
    the dynpro number to use
      lwa_subscriber-dynpro = '0002'.
    the program where the dynpro can be found
      lwa_subscriber-program = 'SAPLZPTP_PORETAINAGE'.
    each subscreen needs his own DDIC-Structure
      lwa_subscriber-struct_name = 'ZSPTP_ITEM'.
    a label can be defined
      lwa_subscriber-label = text-001.
    the position within the tabstrib can be defined
      lwa_subscriber-position = 1.
      lwa_subscriber-height = 7.
      append lwa_subscriber to re_subscribers.
    Header subscreen
      when lc_header.
    the name is a unique identifier for the subscreen and defined in this class definition
      lwa_subscriber-name = subscreen2.
    the dynpro number to use
      lwa_subscriber-dynpro = '0003'.
    the program where the dynpro can be found
      lwa_subscriber-program = 'SAPLZPTP_PORETAINAGE'.
    each subscreen needs his own DDIC-Structure
      lwa_subscriber-struct_name = 'ZSPTP_HEADER'.
    a label can be defined
      lwa_subscriber-label = text-002.
    the position within the tabstrib can be defined
      lwa_subscriber-position = 1.
      lwa_subscriber-height = 7.
      append lwa_subscriber to re_subscribers.
      endcase.
    <b>2. MAP_DYNPRO_FIELDS</b>
    Description
    Build Up Field Catalog
    Detailed logic
      loop at ch_mapping assigning <lf_mapping>.
    *Assignment of metafields to the customer fields.
        case <lf_mapping>-fieldname.
          when 'EBELN'.       <lf_mapping>-metafield = mmmfd_preq_no_po.
          when 'EBELP'.       <lf_mapping>-metafield = mmmfd_preq_item_po.
          when 'ZZ_RETAINAGE'. <lf_mapping>-metafield = mmmfd_cust_01.
          when 'ZZ_EXPTYPE'.   <lf_mapping>-metafield = mmmfd_cust_02.
        endcase.
      endloop.
    <b>
    3. TRANSPORT_FROM_MODEL</b>
    Description
    Data Transport from Business Object
    Detailed logic
        when subscreen1.
    Get the item object
          mmpur_dynamic_cast lif_item im_model.
          check not lif_item is initial.
          lwa_mepoitem = lif_item->get_data( ).
    transport customer fields
          call function 'ZPTP_GET_DATA_ITEM'
            exporting
              im_ebeln = lwa_mepoitem-ebeln
              im_ebelp = lwa_mepoitem-ebelp
            importing
              ex_data  = lwa_customer.
    store info for later use
          move-corresponding lwa_mepoitem to dynp_data_pbo.
          move lwa_customer-zz_retainage to dynp_data_pbo-zz_retainage.
        when subscreen2.
    Get the header object
          mmpur_dynamic_cast lif_header im_model.
          check not lif_header is initial.
    transport standard fields
          lwa_mepohead = lif_header->get_data( ).
    transport customer fields
          call function 'ZPTP_GET_DATA_HEADER'
            exporting
              im_ebeln = lwa_mepohead-ebeln
            importing
              ex_head  = lwa_customerhd.
    store info for later use
          move-corresponding lwa_mepohead to dynp_data_pbohd.
          if not lwa_customerhd-zz_exptype is initial.
            move lwa_customerhd-zz_exptype to dynp_data_pbohd-zz_exptype.
          else.
            move dynp_data_paihd-zz_exptype to dynp_data_pbohd-zz_exptype.
          endif.
        when others.
      endcase.
    <b>4. TRANSPORT_TO_DYNP</b>
    Description
    Data Transport to Screen
    Detailed logic
    case im_name.
        when subscreen1 .
       Pushing item data to screen fields
          call function 'ZPTP_PUSH_ITEM'
            exporting
              im_dynp_data = dynp_data_pbo.
        when subscreen2 .
       Pushing header data to screen fields
          call function 'ZPTP_PUSH_HEADER'
            exporting
              im_dynp_datahd = dynp_data_pbohd.
        when others.
      endcase.
    <b>5. TRANSPORT_FROM_DYNP</b>
    Description
    Data Transport from Screen
    Detailed logic
    case im_name.
        when subscreen1.
    Getting item data from screen fields
          call function 'ZPTP_POP_ITEM'
            importing
              ex_dynp_data = dynp_data_pai.
          if dynp_data_pai ne dynp_data_pbo
           or dynp_data_paihd ne dynp_data_pbohd.
    If data  changed we have to notify the framework
    to transport data to the model
            re_changed = mmpur_yes.
        endif.
        when subscreen2.
    Getting header data from screen fields
          call function 'ZPTP_POP_HEADER'
            importing
              ex_dynp_datahd = dynp_data_paihd.
          if dynp_data_paihd ne dynp_data_pbohd
          or dynp_data_pai ne dynp_data_pbo.
    If data changed we have to notify the framework
    to transport data to the model
            re_changed = mmpur_yes.
          endif.
        when others.
      endcase.
    <b>6. TRANSPORT_TO_MODEL</b>
    Description
    Treatment of Function Codes
    Detailed logic
      case im_name.
        when subscreen1.
    is it an item? im_model can be header or item.
          mmpur_dynamic_cast lif_item im_model.
          check not lif_item is initial.
          lwa_mepoitem = lif_item->get_data( ).
    standard fields changed?
          if dynp_data_pbo-ebeln ne dynp_data_pai-ebeln  or
             dynp_data_pbo-ebelp ne dynp_data_pai-ebelp or
             dynp_data_pbo-zz_retainage ne dynp_data_pai-zz_retainage.
    update standard fields
            lwa_mepoitem-ebeln = dynp_data_pai-ebeln.
            lwa_mepoitem-ebelp = dynp_data_pai-ebelp.
            lwa_mepoitem-zzretainage = dynp_data_pai-zz_retainage.
            call method lif_item->set_data( lwa_mepoitem ).
          endif.
    customer fields changed?
          if dynp_data_pbo-zz_retainage ne dynp_data_pai-zz_retainage.
            call function 'ZPTP_GET_DATA_ITEM'
              exporting
                im_ebeln = lwa_mepoitem-ebeln
                im_ebelp = lwa_mepoitem-ebelp
              importing
                ex_data  = lwa_customer.
            lwa_customer-zz_retainage = dynp_data_pai-zz_retainage.
    Commit changes to database.
            call function 'ZPTP_SET_DATA_ITEM'
              exporting
                im_data = lwa_customer.
          endif.
        when subscreen2.
    is it an header? im_model can be header or item.
          mmpur_dynamic_cast lif_header im_model.
          check not lif_header is initial.
          lwa_mepohead = lif_header->get_data( ).
    standard fields changed?
          if dynp_data_pbohd-ebeln ne dynp_data_paihd-ebeln or
          dynp_data_pbohd-zz_exptype ne dynp_data_paihd-zz_exptype.
    update standard fields
            lwa_mepohead-ebeln = dynp_data_paihd-ebeln.
            lwa_mepohead-zzexptype = dynp_data_paihd-zz_exptype.
            call method lif_header->set_data( lwa_mepohead ).
          endif.
    customer fields changed?
          if dynp_data_pbohd-zz_exptype ne dynp_data_paihd-zz_exptype.
            call function 'ZPTP_GET_DATA_HEADER'
              exporting
                im_ebeln = lwa_mepohead-ebeln
              importing
                ex_head  = lwa_customerhd.
            lwa_customerhd-zz_exptype = dynp_data_paihd-zz_exptype.
    Commit changes to database.
            call function 'ZPTP_SET_DATA_HEADER'
              exporting
                im_datahd = lwa_customerhd.
          endif.
        when others.
      endcase.
    <b>
    B. ZCL_IM_ME_PROCESS_PO_CUST</b>
    Description
    Imp. Class for BAdI imp. ZME_PROCESS_PO_CUST
    Methods
    Name     Level     Visibility
    IF_EX_ME_PROCESS_PO_CUST~INITIALIZE     Instance Attribute     Public
    IF_EX_ME_PROCESS_PO_CUST~OPEN     Instance Attribute     Public
    IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER     Instance Attribute     Public
    IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM     Instance Attribute     Public
    IF_EX_ME_PROCESS_PO_CUST~POST     Instance Attribute     Public
    IF_EX_ME_PROCESS_PO_CUST~CLOSE     Instance Attribute     Public
    <b>
    1. INITIALIZE</b>
    Description
    Initializations (Invoked Once Only)
    Detailed logic
    initializations
      call function 'ZPTP_INIT'.
    <b>2. OPEN</b>
    Description
    Open a Purchase Order
    Detailed logic
    data: lwa_mepoheader type mepoheader.
    read customer data
    this has to be done when we open a persistent object
      check im_trtyp eq 'V' or im_trtyp eq 'A'.
      lwa_mepoheader = im_header->get_data( ).
    read customer data from database
      call function 'ZPTP_OPEN'
        exporting
          im_ebeln = lwa_mepoheader-ebeln.
    <b>3. PROCESS_HEADER</b>
    Description
    Processing of Header Data
    Detailed logic
    data: lwa_mepohead type mepoheader,
            lwa_customerhd type ztptp_header.
      include mm_messages_mac. "useful macros for message handling
    here we check customers data
      lwa_mepohead = im_header->get_data( ).
      if lwa_mepohead-loekz eq 'D'.
    a physical deletion of the header was carried out.
        lwa_customerhd-ebeln = lwa_mepohead-ebeln.
        call function 'ZPTP_SET_DATA_HEADER'
          exporting
            im_datahd                  = lwa_customerhd
            im_physical_delete_request = 'X'.
      endif.
    <b>4. PROCESS_ITEM</b>
    Description
    Processing of Item Data
    Detailed logic
    data: lwa_mepoitem type mepoitem,
            lwa_customer type ztptp_item.
      include mm_messages_mac. "useful macros for message handling
    here we check customers data
      lwa_mepoitem = im_item->get_data( ).
      if lwa_mepoitem-loekz eq 'D'.
    a physical deletion of the item was carried out. therrefor we have to
    delete customer data on the level of the item
        lwa_customer-ebeln = lwa_mepoitem-ebeln.
        lwa_customer-ebelp = lwa_mepoitem-ebelp.
        call function 'ZPTP_SET_DATA_ITEM'
          exporting
            im_data                    = lwa_customer
            im_physical_delete_request = 'X'.
      endif.
    <b>5. POST</b>
    Description
    Post
    Detailed logic
    *Posting header data
          call function 'ZPTP_POST_HEADER'
            exporting
              im_ebeln       = im_ebeln.
    *Posting item data
          call function 'ZPTP_POST_ITEM'
            exporting
              im_ebeln       = im_ebeln.
    <b>
    6. CLOSE</b>
    Description
    Closing Processing
    Detailed logic
    close customer data
      call function 'ZPTP_INIT'.

  • Down payment request at PO header level

    Hi,
    I am trying to create PO down payment request using F-47 but PO item is mandatory in it. How to create down payment request at PO header level? In my PO, there are more than 50 items. Please help.
    Regards,
    Milind Dumbre

    Hi
    i dont think you can create down payment at header level with reference of PO
    you need to create it itemwise
    process is as follows
    1. F-47 - Create Down Payment Request (Here in selection screen specify all the necessary details (Doc Type - KA) and press enter, on this screen specify amount to be paid in advance and also specify the PO Document and line item and SAVE)
    2. F-48 - Down Payment Entry w.r.t. Down Payment Request No
    3. F-54 - Down Payment clearing
    At the time of MIRO, it will pop-up that advance payment is done to this vendor against this PO.
    Now if you dont want to have it at item level
    then create down payment from Fi side and maintain PO number in reference fieled or text field ,
    now it wont be visible in PO header status but it can be seen in vendor account
    for more consult your FI consultant

  • Rounding difference in down payment for header condition

    We have header condition, marked as "group condition" for traqnsport. But when doing down payment the system calculates incorrectly - for example I enter transport $600 at header level, but because the system calculates it at item level and due to rounding, in the 50% down payment invoice it shows - 300.02. Obviously when the customer receives down payment invoice that says pay 50% of some amount and the amount to be paid is not actually 50% it would be a problem. How could this be solved? We tried modifying the form, but as the it reads values from the system which are incorrect that didn't help.

    Hello,
    Please check the customizing:
    Financial Accounting -> Accounts Receivable and Accounts Payable
        -> Business Transactions -> Down Payment Received -> Define
        Reconciliation Accounts for Customer Down Payments
    Regards,
    Raghavendra

Maybe you are looking for

  • How can i get my iphone, from the disable mode

    how can i get my iphone 3gs, out of the disable mode?

  • Connecting to SLM2048 switch through management console XSLT Processor problem

    When I try to connect to my SLM2048 I receive the following message: "your browser does not seem to support xsltprocessor" How can I resolve this ? I'm using IE 11 and Chrome 40.0.2214.93 m

  • LabVIEW version for Vision Builder AI 2012 plugins

    Hi all, Ii was a bit of a challenge to find out which version of LabVIEW was necessary to develop custom plugins for Vision Builder AI 2012, I found it by starting the installler, it is LabVIEW 2011 (but I wish I could find this information in Vision

  • Put files in bin

    I put files in the bin! and 20 seconds later its comeback again on may harddisk very strange!! any one have a solution?

  • PO for AUC

    Hi,    I had created an AUC class and an asset using this AUC. Then i created a PO, when i tried to create a GR for this i got following error message Account xxxxxx in company code EDB cannot be directly posted to   Diagnosis