Block customer before GI

I would like to know is any possbile in SAP when create a sales order for COD payment terms, then block the customer before GI until released by someone. Can I do that. thanks!

Go to OVLS, select any Delivery Block and check the box for the field "Goods".
Now go to sale order and assign the same serial number in the field "Delivery Block".  This will prevent doing PGI against that sale order.  Again if the block is released in VA02, you can do PGI.  Of course, for this, you need to have a control giving authorisation of VA02 to authorised users.
thanks
G. Lakshmipathi

Similar Messages

  • Create blocked customer

    I have a situation on which I need to create the new customer with Posting Block (All Company codes - SPERR) set. So the new customers created from XD01 to be blocked, without going to XD05 Tcode.
    After that an workflow will be trigger and if the request is approved the customer will be unblocked.
    The user need to be able to save the customer without sending the request so i need to blocked the customer before the workflow is triggered (thous, the variant in which i blocked the new created customer at the start of the workflow is not a solution).
    Please let me know your thoughts on how to do this as setting the SPERR value to X of KNA1 from an enhance spot does not seems like a good idea. Also, let me know if there is a way to do this from customization.

    Hi,
    Blocking the data against the sales area will set the block for each transaction it will not stop you to create sales order and delivery,billing.
    For your requirement u can set the deletion flag to perticular sales area in transaction code XD06. Enter the customer no. and select the sales area in which u want to block from perform any transaction. then select check box name "Selected Sales Area".
    Hope this will resovle ur problem.
    Rgds
    Dhiraj

  • Description of blocked customer

    hi gurus,
        By using transaction code XD01 i blocked the customer.Now i want the description of the blocked customer.In which table i can get the description of the blocked customer.
                                                                   regrads,
                                                                     chinnu.

    hi,
    Central block for customer can be seen in the table KNA1, field AUFSD...
    For eg : You can define different kinds of block  according to the needs of your organization..you can for eg : auto block all the free of charge deliveries and credit memo req. for a cretain customer, pending manual approval before further can take place...
    Regards
    Priyanka.P
    Edited by: Priyanka Paltanwale on Nov 4, 2008 8:22 AM

  • Requirement to bill customer before vendor invoice in third party processing

    We have a requirement to bill a customer before the vendor invoice in third party processing. The reason behind this is because the vendor send invoices only once in a month and the customer cannot wait for so long to to receive their invoice from the business.
    I saw some discussions that the third party processing with shipment notification can be used however when I check the business flow in that case I see the following.
    A Third-Party Sales Order is created and a purchase requisition is generated automatically 
    A list of purchase requisitions to be assigned is displayed 
    The assigned purchase requisitions are converted into purchase orders 
    The purchase orders are approved 
    A statistical goods receipt is posted 
    The vendor invoice is verified and posted 
    The billing is created
    It clearly says that the customer billing document is only possible after entering the invoice from the vendor. Which would be the best way to fullfill this requirement?

    Do you mean the goods issue done by the vendor to the customer in the vendor system? And this quantity will be copied into our ( where the third party order is created) system?
    No, MIGO done by in our company system only. May be you might have misunderstood because of  my sentence.instead of company i mentioned as Vendor.
    For Vendor this process will become as standard sales and he will do PGI. However in our system we do MIGO .
    Suppose the customer ordered 10 Qty. Vendor delivered 2 Qty wouldn't the above equation Order qty- MIGO qty= Invoice qty be 10-2= 8? but we should be really billing the customer only for 2 right?
    No you have mistaken my idea, it was not a formula just i was giving example.
    Billing qty is nothing but it is qty copies from source document to target document.
    E
    Goods receipt quantity less invoiced quantity
    for example order qty is =10 and vendor delivered first time 2 qty to the customer and he billed our company for 2qty and we billed the customer for 2 qty.
    And next time let us assume again Vendor delivered 4 more qty and billed us 4qty.And this time when you are billing the customer in VF01 system will propose the 4qty only( total goods receipt qty 6 - already invoiced qty 2).
    Hope now you understood the meaning of E(goods receipt qty less invoices qty).
    And did you try your requirement as mentioned in my first reply?
    thanks,
    Srinu.

  • Can a photo book created in i photo be saved in pdf format or shared online with a customer before printing?

    Can a photo book created in i photo be saved as a pdf or shared online in any way with a customer before printing?

    Sure - once you make a PDF you can e-mail or share it as you want - although they can be large so you need a share capability for large file
    LN

  • Block Customer for Particular Storage Location

    Hi.
    I want to Block a Customer for Particular Storage location.
    ie plant 1000(St Loc 01,02)
       plant 2000(St Loc 03,04)
    Block Customer XYZ for Plant 2000 & Sto Loc 03
    is this possible?
    Reg.
    Amol

    Through standard settings, this is not possible.  Try with USEREXIT_SOURCE_DETERMINATION (MV45AFZB) where you have to define the storage location and the customer code.
    thanks
    G. Lakshmipathi

  • Regarding blocked customer table information

    Hello,
    I blocked some customers using xd05 tcode. Now i want to get the information the blocked customer information. Actually all the screen feilds are in one structure RF02D. So now from which table i could fetch data. based on that i need develop the collection report.
    Thank you

    Hi Ravi,
    U can block the customer at various levels eg: Only for creating/changing Orders, Delivery, Billing etc.
    Go to table KNA1. Here u have various fields for various reasons. Select the data based on ur requirement. If it is vendor then u can check in table LFA1.
    Have a look at fields AUFSD,FAKSD, LIFSD, SPERR, SPERZ,CASSD, NODEL, J_3GBLSPER in KNA1 table.
    If u want to display customer who is blocked for any one of the above reasons then u can write a select on kna1 with where clause having all the above fields NE space(Or condition).
    Thanks,
    Vinod.

  • Customer has been assigned order block--customer inactive

    Hi Friends, While creating sales order when I m putting sold to party I am getting the error
    customer has been assigned order block--customer inactive.I tried using XD05 there is no tick mark and I removed entry from sales/delivery/billing block. Still I am facing same error.
    Any pointers will be appreciated and rewarded.
    Regards

    Hi there,
    When you remove the customer block in VD05, you have to come back of the order entry screen.
    You have to re-enter the order again. Only then it will allow you.
    This is to refresh the system after you removed the block.
    Regards,
    Sivanand

  • Invoice Block -IR before GR

    Dear SAP Gurus,
    Please could you suggest me  solution  for the below question.
    Most of the cases  Invoice  posted  before the GR is posted, at this stage  client wants to block the invoice's for payment automatically.
    After GR posting, probably we can  run release program to release the payment blocks
    What are the setting we should made to block the invoice automatically? I understand this nothing todo with Finance consultant.
    Would appreciate your early responce.
    Regards
    prab.

    Hi,
    You can block all invoices to check them again through Stochastic block automatically. If the stochastic block is active and you post an invoice that is not subject to any other blocking reason, it can be selected for blocking.
    Please make a note that- A stochastic block is not set at item level, but for the whole invoice. If a stochastic block is set when you post the invoice, the system automatically sets an R in the field Payment block in the document header data; there is no blocking indicator in the individual items.
    In Customizing for Invoice Verification, you can define:
    -If stochastic blocking is active
    -The degree of probability of a block. You set a threshold value and a percentage for this.
    If you enter a threshold value of zero and a percentage of 99.9%, all invoices would then be blocked automatically.
    Regards,
    Narayana.
    Edited by: Narayana Ghanta on Sep 16, 2008 4:08 PM

  • Block customer sales order for other sales persons

    Hi all
    Could some one tell me how is it possible to block the sales documents created by one sales person from not being accessed by other sales person.
    In my case, we r having sales person dedicated to a customer nad when ever he wants to access a document, he should not be able to go into others documents not even in the display mode.
    Requirement quite urgent. points assured for helpful answer.
    Sailendra

    Hi,
    There is no exit name for field exit.Go to se38 run program RSMODPRF.
    Here you will have to create the field exit for the required field.
    Consult your ABAPer,he will do the rest
    Few more info for you:)
    Short text
    Field Exits for Data Elements
    Description
    Maintenance transaction for creating and activating field exits
    As part of the extension concept, SAP allows you to install a field exit for each screen field. Similar to the conversion exit, the system branches at the field exit at DCI (DATA COMMUNICATIONS INPUT) to a function module, if the field is an input field and a function code was triggered. The function module must adhere to the following naming convention:
    Prefix: FIELD_EXIT_
    Infix:  <Data element name>
    Suffix: _0 to _9 (optional), _A to _Z
    The interface is automatically generated during the creation of the function module, and has 2 parameters:
    Import parameter:  INPUT
    Export parameter:  OUTPUT
    After a function code has been triggered the contents of the field are made available to the FB via the "INPUT" import parameter. You can edit this and, when changed, make it available to the ABAP/4 processor in "OUTPUT". The input field contents are usually passed on: you can simply write OUTPUT = INPUT.
    If, e.g., you have activated the field exit for the data element 'PROGRAM', then the fields of all the screens, which refer to the data element 'PROGRAM', branch to the function module FIELD_EXIT_PROGRAM. This includes the field 'Program' of the initial screen SAPMS38M0100 in transaction SE38, for example.
    If you do not want the function module to be accessed from all screens, assign particular screens to the data element PROGRAM. By allocating an exit number, it is also possible to branch to other function modules with the corresponding suffix _0 ... _Z.
    Example: You have assigned screen SAPMS38M0100 and exit number 5 to data element 'PROGRAM'. The corresponding field on SAPMS38M0100 branches to FIELD_EXIT_PROGRAMM_5.
    As soon as you activate an exit, the corresponding screens are invalidated.
    Note: Field exits are only taken into account during screen generation if the parameter  abap/fieldexit = 'YES' is set in the system profile.
    Requirements
    Set the profile parameter  abap/fieldexit = 'YES' before system start.
    Limitations
    The following ABAP statements are not allowed in the function modules of field exits:
         BREAK-POINT,
         CALL SCREEN, CALL DIALOG, CALL TRANSACTION, SUBMIT,
         COMMIT WORK, ROLLBACK WORK,
         COMMUNICATION RECEIVE,
         EXIT FROM STEP-LOOP,
         MESSAGE I, MESSAGE W.
    Note:
    Field exits cannot be edited with the debugger.
    You should not use any external Performs in field exits. The ABAP processor shares the table work areas of externally called programs with those of the first caller. This could lead to errors at field exits that can hardly be analyzed, as field exits are sometimes slipped into the flow of the program at unforeseen events.
    Questions and answers on field exits
    1. A field exit was created with the CMOD and activated, but it does not get executed when the screen is called.
    Since the field exit is not executed until DCI, some action must occur in the screen (e.g. press Return, saving....).
    Set the abap/fieldexit profile parameter to YES and start the system again.
    After the FIELD_EXIT... function module has been activated and the field exit has been activated, the transaction in whose screen the field exit is to be executed must be terminated. The screen is not generated until it is called.
    Do not work on different application servers, otherwise there may be a delay before the field exit becomes active.
    The profile parameter must be set either on all application servers or on none.
    If the field exit is to be active in certain screens only, then you should check whether you have selected the correct program and the correct screen number (Careful with SUBSCREENS Do not rely on the F1 information for the field!
    2. How does setting abap/fieldexit affect the performance?
    If a screen is generated and the profile parameter is set, then the system checks in 2 tables (TDDIR, TDDIRS) to see whether a field exit has to be generated for the field. In practice the screen load after a Put is not generated until the screen is called. The user will not experience a noticeable delay, since screen generation is extremely fast.
    3. Can the contents of other screen fields be read in a field exit?
    In principle all fields can be copied to global variables in the TOP or the function group. However, since the order in which the field exits are called is not guaranteed, this possibility should not be used.
    4. How does the field exit work in step-loop fields?
    After data input to DCI the field exit will be called as many times as fields are visible on the step-loop. The SY-STEPL system variable is incremented each time. If a new value is assigned to be field, then it will be visible in the module between LOOP. ENDLOOP. This module will also be called as many times as there are visible step-loop lines.
    5. Can field exits be debugged?
    No. Field exits have to be tested in isolation in the development environment. To analyze problems that occur only in the screen environment, the relevant variables can be written to the file system using TRANSFER... and can be analyzed there.
    6. What should one do if the field contents are not getting transported to ABAP/4?
    Check whether you have assigned a value to the OUTPUT field.
    7. When does the field exit get called in the case that there is a conversion exit attached to the data element?
    The field exit will be called after the conversion exit. This means that the INPUT field contains the data in the same form as that in which the ABAP/4 program also gets them.
    Reward points if useful
    Regards,
    Amrish Purohit

  • CMD_EI_API and ENQUEUE_EXKNA1 fail to block customer

    <p>Dear SAP gurus and fellow programmers,</p>
    <p>I have been exploring how to block customers by examining the code that is executed in transaction XD02. I have been able to block and unblock customers using an ABAP objects class, CMD_EI_API, but only when I execute it directly from transaction SE24. If I call the method from my own code, the client does not block or unblock. I've checked my code, and it is identical to the code in several standard transactions.</p>
    <p>Note: I can't sucessfully block the customer for "all company codes". I can block it sucessfully for orders, delivery, billing and sales.</p>
    <p>I gave up in this approach and decided to uses the ENQUEUE_EXKNA1 and DEQUEUE_EXKNA1 functions. Once again, if I run the XD02 transaction, the block/unblock succeeds. If I run it from my own function module, even though the code was directly copied from the standard tranasction, it fails. I know the ENQUEUE and DEQUEUE functions are executed by XD02, because I set breakpoints on them to learn how they work.</p>
    <p>Here is my code, copied from SAPs: </p>
    DATA: lv_msgtext(72),<br>
             ls_bapiret2      TYPE bapiret2,<br>
             lv_user          TYPE symsgv,<br>
             ls_syst          TYPE syst,<br>
             ls_error         TYPE cvis_message,<br>
             lv_in_lock_table TYPE boolean,<br>
             lb_badi_lock     TYPE REF TO cmd_additional_locks.<br>
    <br>
    <br>
    * Initialize exporting parameter<br>
      CLEAR:<br>
        ls_error.<br>
    <br>
    * Check internal table gt_lock_kunnr whether KUNNR is locked<br>
      CALL METHOD cmd_ei_api=>get_lock<br>
        EXPORTING<br>
          iv_kunnr         = p_kunnr<br>
        IMPORTING<br>
          ev_in_lock_table = lv_in_lock_table.<br>
    <br>
    * KUNNR is locked already, back to caller<br>
      IF lv_in_lock_table = 'X'.<br>
        RETURN.<br>
      ENDIF.<br>
    <br>
    * KUNNR is not locked, try to lock......<br>
      CALL FUNCTION 'ENQUEUE_EXKNA1'<br>
        EXPORTING<br>
          mode_kna1      = 'E' "mode_kna1<br>
          mandt          = sy-mandt<br>
          kunnr          = p_kunnr<br>
          x_kunnr        = space "x_kunnr<br>
          _scope         = 2 "_scope<br>
          _wait          = space "_wait<br>
          _collect       = space "_collect<br>
        EXCEPTIONS<br>
          foreign_lock   = 1<br>
          system_failure = 2<br>
          OTHERS         = 99.<br>
    <br>
    *------- save system variables in structure ls_syst -------------------<br>
      ls_syst = sy.<br>
    <br>
      CASE sy-subrc.<br>
        WHEN 0.<br>
    *     do nothing<br>
        WHEN 1.<br>
          lv_user = sy-msgv1.<br>
          ls_error-is_error = 'X'.<br>
          MESSAGE e042(f2) WITH p_kunnr lv_user INTO lv_msgtext.<br>
          ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
          APPEND ls_bapiret2 TO ls_error-messages.<br>
    *------- fill system variables with original values -------------------<br>
          sy = ls_syst.                                       "#EC WRITE_OK<br>
          IF sy-msgid IS NOT INITIAL.<br>
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno<br>
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO lv_msgtext.<br>
            ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
            APPEND ls_bapiret2 TO ls_error-messages.<br>
          ENDIF.<br>
          RAISE foreign_lock.<br>
        WHEN 2.<br>
          ls_error-is_error = 'X'.<br>
          MESSAGE e038(f2) INTO lv_msgtext.<br>
          ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
          APPEND ls_bapiret2 TO ls_error-messages.<br>
    *------- fill system variables with original values -------------------<br>
          sy = ls_syst.                                       "#EC WRITE_OK<br>
          IF sy-msgid IS NOT INITIAL.<br>
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno<br>
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO lv_msgtext.<br>
            ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
            APPEND ls_bapiret2 TO ls_error-messages.<br>
          ENDIF.<br>
          RAISE system_failure.<br>
        WHEN OTHERS.<br>
          ls_error-is_error = 'X'.<br>
          MESSAGE e001(cmd_api) INTO lv_msgtext.<br>
          ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
          APPEND ls_bapiret2 TO ls_error-messages.<br>
          RETURN.<br>
      ENDCASE.<br>
    <br>
    * try to lock only if there are no errors....<br>
    * set lock with BADI cmd_additional_lock<br>
    <br>
      GET BADI lb_badi_lock.<br>
    * call method lock BADI CMD_ADDITIONAL_LOCKS<br>
      CALL BADI lb_badi_lock->lock<br>
        EXPORTING<br>
          iv_kunnr = p_kunnr<br>
        CHANGING<br>
          cs_error = ls_error.<br>
    <br>
    * remove customer-proprietary lock in case of error<br>
      IF ls_error-is_error =  'X'.<br>
        CALL FUNCTION 'DEQUEUE_EXKNA1'<br>
          EXPORTING<br>
            kunnr = p_kunnr.<br>
        raise FOREIGN_LOCK.<br>
      ENDIF.<br>
    <br>
    * add successfully locked customer number<br>
      CALL METHOD cmd_ei_api=>set_lock<br>
        EXPORTING<br>
          iv_kunnr = p_kunnr.<br>
    <br>
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'<br>
    Edited by: Aaron Ortiz on Sep 8, 2009 5:16 PM
    Edited by: Rob Burbank on Sep 8, 2009 11:26 AM

    <p>Dear SAP gurus and fellow programmers,</p>
    <p>I have been exploring how to block customers by examining the code that is executed in transaction XD02. I have been able to block and unblock customers using an ABAP objects class, CMD_EI_API, but only when I execute it directly from transaction SE24. If I call the method from my own code, the client does not block or unblock. I've checked my code, and it is identical to the code in several standard transactions.</p>
    <p>Note: I can't sucessfully block the customer for "all company codes". I can block it sucessfully for orders, delivery, billing and sales.</p>
    <p>I gave up in this approach and decided to uses the ENQUEUE_EXKNA1 and DEQUEUE_EXKNA1 functions. Once again, if I run the XD02 transaction, the block/unblock succeeds. If I run it from my own function module, even though the code was directly copied from the standard tranasction, it fails. I know the ENQUEUE and DEQUEUE functions are executed by XD02, because I set breakpoints on them to learn how they work.</p>
    <p>Here is my code, copied from SAPs: </p>
    DATA: lv_msgtext(72),<br>
             ls_bapiret2      TYPE bapiret2,<br>
             lv_user          TYPE symsgv,<br>
             ls_syst          TYPE syst,<br>
             ls_error         TYPE cvis_message,<br>
             lv_in_lock_table TYPE boolean,<br>
             lb_badi_lock     TYPE REF TO cmd_additional_locks.<br>
    <br>
    <br>
    * Initialize exporting parameter<br>
      CLEAR:<br>
        ls_error.<br>
    <br>
    * Check internal table gt_lock_kunnr whether KUNNR is locked<br>
      CALL METHOD cmd_ei_api=>get_lock<br>
        EXPORTING<br>
          iv_kunnr         = p_kunnr<br>
        IMPORTING<br>
          ev_in_lock_table = lv_in_lock_table.<br>
    <br>
    * KUNNR is locked already, back to caller<br>
      IF lv_in_lock_table = 'X'.<br>
        RETURN.<br>
      ENDIF.<br>
    <br>
    * KUNNR is not locked, try to lock......<br>
      CALL FUNCTION 'ENQUEUE_EXKNA1'<br>
        EXPORTING<br>
          mode_kna1      = 'E' "mode_kna1<br>
          mandt          = sy-mandt<br>
          kunnr          = p_kunnr<br>
          x_kunnr        = space "x_kunnr<br>
          _scope         = 2 "_scope<br>
          _wait          = space "_wait<br>
          _collect       = space "_collect<br>
        EXCEPTIONS<br>
          foreign_lock   = 1<br>
          system_failure = 2<br>
          OTHERS         = 99.<br>
    <br>
    *------- save system variables in structure ls_syst -------------------<br>
      ls_syst = sy.<br>
    <br>
      CASE sy-subrc.<br>
        WHEN 0.<br>
    *     do nothing<br>
        WHEN 1.<br>
          lv_user = sy-msgv1.<br>
          ls_error-is_error = 'X'.<br>
          MESSAGE e042(f2) WITH p_kunnr lv_user INTO lv_msgtext.<br>
          ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
          APPEND ls_bapiret2 TO ls_error-messages.<br>
    *------- fill system variables with original values -------------------<br>
          sy = ls_syst.                                       "#EC WRITE_OK<br>
          IF sy-msgid IS NOT INITIAL.<br>
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno<br>
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO lv_msgtext.<br>
            ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
            APPEND ls_bapiret2 TO ls_error-messages.<br>
          ENDIF.<br>
          RAISE foreign_lock.<br>
        WHEN 2.<br>
          ls_error-is_error = 'X'.<br>
          MESSAGE e038(f2) INTO lv_msgtext.<br>
          ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
          APPEND ls_bapiret2 TO ls_error-messages.<br>
    *------- fill system variables with original values -------------------<br>
          sy = ls_syst.                                       "#EC WRITE_OK<br>
          IF sy-msgid IS NOT INITIAL.<br>
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno<br>
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO lv_msgtext.<br>
            ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
            APPEND ls_bapiret2 TO ls_error-messages.<br>
          ENDIF.<br>
          RAISE system_failure.<br>
        WHEN OTHERS.<br>
          ls_error-is_error = 'X'.<br>
          MESSAGE e001(cmd_api) INTO lv_msgtext.<br>
          ls_bapiret2 = cvi_ei_api=>tool_fill_bapiret2( ).<br>
          APPEND ls_bapiret2 TO ls_error-messages.<br>
          RETURN.<br>
      ENDCASE.<br>
    <br>
    * try to lock only if there are no errors....<br>
    * set lock with BADI cmd_additional_lock<br>
    <br>
      GET BADI lb_badi_lock.<br>
    * call method lock BADI CMD_ADDITIONAL_LOCKS<br>
      CALL BADI lb_badi_lock->lock<br>
        EXPORTING<br>
          iv_kunnr = p_kunnr<br>
        CHANGING<br>
          cs_error = ls_error.<br>
    <br>
    * remove customer-proprietary lock in case of error<br>
      IF ls_error-is_error =  'X'.<br>
        CALL FUNCTION 'DEQUEUE_EXKNA1'<br>
          EXPORTING<br>
            kunnr = p_kunnr.<br>
        raise FOREIGN_LOCK.<br>
      ENDIF.<br>
    <br>
    * add successfully locked customer number<br>
      CALL METHOD cmd_ei_api=>set_lock<br>
        EXPORTING<br>
          iv_kunnr = p_kunnr.<br>
    <br>
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'<br>
    Edited by: Aaron Ortiz on Sep 8, 2009 5:16 PM
    Edited by: Rob Burbank on Sep 8, 2009 11:26 AM

  • Block Customer Credit Memo via Quality Management

    Hi
    We are using QM in sale for customer return SO. We activated inspection type 9902 customer return with Movement type 655.
    We create return sale order and against return SO does the GRN at that time  inspection lot generates for Inspection type 9902.material goes to quality stock.
    After this quality department check whether this material is accepted or Rejected and provide usage decision.In case of rejected we provide Credit Invoice to customer against Return SO.
    Now we want validate or control on Credit Invoice will be issue only In case of Usage decision is rejected (Material is block).
    Similarly we use Invoice block functionality for Vendor through control key.
    Regards
    Sandeep

    Hi Sandeep,
    I think you can try Follow-up action linked to UD = "R" in QS51, where you can assign a FM/BAPI to create Credit Invoice. You can use the appropriate FM form the below list -
    BAPI_BILLINGDOC_CREATE
    BAPI_ACC_DOCUMENT_POST
    SD_SALESDOCUMENT_CREATE
    BAPI_SALESDOCU_CREATEFROMDATA
    You may need to work with FI team to test the Follow-up action in Sandbox/Dev system, once you implement it.
    Thanks,
    Arijit

  • Changing sales order for a Credit blocked customer

    Hi Gurus
    One of the requirement of my client is that they create sales order for a customer and deliver the goods. During sales order creation billing block is automatically applied. This block is removed by a batch job after the goods are delivered. Sometime credit department block the customer using FD32 (KNKK-CRBLB). Now when the batch job is run to remove the billing block the system will not allow it for that order as the system calls VA02 during that batch job run. When you process a sales order using VA02 for a customer which is blocked (KNKK-CRBLB) then system will through error message V1 (154) i.e Order receipt/delivery not possible, credit customer blocked.
    So the batch job will not be able to remove the billing block from the order. NOw the requiremetn is that how can I achieve this so that the billing block are removed by that batch job as the customers has already been delivered the goods (Any user exit?).
    Thanks
    KTK

    Dear KTK,
    Please check this sample program from other thread to find BADI and enhancement for a given transaction code. You just need to create a custom program in your system by cut and paste below codes.
    REPORT ZTEST.
    TABLES: TSTC,
    TADIR,
    MODSAPT,
    MODACT,
    TRDIR,
    TFDIR,
    ENLFDIR,
    SXS_ATTRT ,
    TSTCT.
    DATA: JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
    DATA: FIELD1(30).
    DATA: V_DEVCLASS LIKE TADIR-DEVCLASS.
    PARAMETERS: P_TCODE LIKE TSTC-TCODE,
    P_PGMNA LIKE TSTC-PGMNA .
    DATA: WA_TADIR TYPE TADIR.
    START-OF-SELECTION.
    IF NOT P_TCODE IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
    ELSEIF NOT P_PGMNA IS INITIAL.
    TSTC-PGMNA = P_PGMNA.
    ENDIF.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'PROG'
    AND OBJ_NAME = TSTC-PGMNA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM TRDIR
    WHERE NAME = TSTC-PGMNA.
    IF TRDIR-SUBC EQ 'F'.
    SELECT SINGLE * FROM TFDIR
    WHERE PNAME = TSTC-PGMNA.
    SELECT SINGLE * FROM ENLFDIR
    WHERE FUNCNAME = TFDIR-FUNCNAME.
    SELECT SINGLE * FROM TADIR
    WHERE PGMID = 'R3TR'
    AND OBJECT = 'FUGR'
    AND OBJ_NAME EQ ENLFDIR-AREA.
    MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
    ENDIF.
    ENDIF.
    SELECT * FROM TADIR INTO TABLE JTAB
    WHERE PGMID = 'R3TR'
    AND OBJECT in ('SMOD', 'SXSD')
    AND DEVCLASS = V_DEVCLASS.
    SELECT SINGLE * FROM TSTCT
    WHERE SPRSL EQ SY-LANGU
    AND TCODE EQ P_TCODE.
    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    WRITE:/(19) 'Transaction Code - ',
    20(20) P_TCODE,
    45(50) TSTCT-TTEXT.
    SKIP.
    IF NOT JTAB[] IS INITIAL.
    WRITE:/(105) SY-ULINE.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    Sorting the internal Table
    sort jtab by OBJECT.
    data : wf_txt(60) type c,
    wf_smod type i ,
    wf_badi type i ,
    wf_object2(30) type C.
    clear : wf_smod, wf_badi , wf_object2.
    Get the total SMOD.
    LOOP AT JTAB into wa_tadir.
    at first.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 'Enhancement/ Business Add-in',
    41 SY-VLINE ,
    42 'Description',
    105 SY-VLINE.
    WRITE:/(105) SY-ULINE.
    endat.
    clear wf_txt.
    at new object.
    if wa_tadir-object = 'SMOD'.
    wf_object2 = 'Enhancement' .
    elseif wa_tadir-object = 'SXSD'.
    wf_object2 = ' Business Add-in'.
    endif.
    FORMAT COLOR COL_GROUP INTENSIFIED ON.
    WRITE:/1 SY-VLINE,
    2 wf_object2,
    105 SY-VLINE.
    endat.
    case wa_tadir-object.
    when 'SMOD'.
    wf_smod = wf_smod + 1.
    SELECT SINGLE MODTEXT into wf_txt
    FROM MODSAPT
    WHERE SPRSL = SY-LANGU
    AND NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    when 'SXSD'.
    For BADis
    wf_badi = wf_badi + 1 .
    select single TEXT into wf_txt
    from SXS_ATTRT
    where sprsl = sy-langu
    and EXIT_NAME = wa_tadir-OBJ_NAME.
    FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    endcase.
    WRITE:/1 SY-VLINE,
    2 wa_tadir-OBJ_NAME hotspot on,
    41 SY-VLINE ,
    42 wf_txt,
    105 SY-VLINE.
    AT END OF object.
    write : /(105) sy-ULINE.
    ENDAT.
    ENDLOOP.
    WRITE:/(105) SY-ULINE.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ 'No.of Exits:' , wf_smod.
    WRITE:/ 'No.of BADis:' , wf_badi.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'No userexits or BADis exist'.
    ENDIF.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(105) 'Transaction does not exist'.
    ENDIF.
    AT LINE-SELECTION.
    data : wf_object type tadir-object.
    clear wf_object.
    GET CURSOR FIELD FIELD1.
    CHECK FIELD1(8) EQ 'WA_TADIR'.
    read table jtab with key obj_name = sy-lisel+1(20).
    move jtab-object to wf_object.
    case wf_object.
    when 'SMOD'.
    SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
    CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    when 'SXSD'.
    SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
    CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
    ENDCASE.
    Alternatively, you can do the following:
    1. For what ever transaction u want the enhancement .. just check for the System-->status (menu) and find out the PROGRAM name....
    2. Double click on to the program name and go inside the program (Abap editor)
    3. Search for "Call Customer-function " ... and u'll get some search results .. If u get results then u have enhancement in that tcode .....
    4. Then it actually calls a Function module .... copy the Function module name .... go to SE80 (object navigator) click on "Repository Information system" then Customer Enhancements .... Give the Function module name in the "Components" field and click Execute ....
    ull get a list of Enhancements related to that Componene....
    5. Choose which ever enhancement will suit ur business need ..
    6. Go to CMOD... create a project .... assign ur enhancement ... and then code ur logic.... activate ur enhancement in CMOD ....... Ur Buisness need will be solved...
    For a user exit......
    Finding whether there is any User Exit or not for tcode VA42
    1. For what ever transaction u want the user exit .. just check for the System-->status (menu) and find out the PROGRAM name.... ( The program name would be for our scenario "SAPMV45A" )
    2. Double click on to the program name and go inside the program (Abap editor)
    3. Search for the word "USEREXIT" .... u ll find all the user exits in the search result .. and find ur's then ...
    Reward points if this helpful.
    Regards,
    Naveen.

  • System is not blocking Customer at creating Sales order - Urgent

    Hello all,
    Our user has created a sales order for 1,040,000.00  PKR for advance payment- cheque payment term. There is not payment against customer in fbl5n but system is not blocking sales order.Customer credit limit is zero. Any idea that why this is happening??

    hi,
    we had a similar req we handled it using delivery level blocks and restricted the authorisation to remove the block to certain users. incase you are not doin this follow this path. imglog executionshippingdeliveries-define reasons. assign this block to the order. also you will ahve to put teh block in cust master too.
    saurabh

  • Block customer report

    hi,
    any standard report to show which customer is block by BD05
    thanks

    Hi Rajiv,
    Is it that you want to knwo how to Block and unblock customer if yes the T-Code is VD05.
    Regards
    Suvin

Maybe you are looking for

  • I try to install mac osx 10.5.6 on my powerbookG4

    my powerbook G4 1.67ghz have a problem when i try to install new hdd with OSX 10.5.6, a massage box come out " Mac OS X cannot be installed on this computer". After using disk utility to format new HDD, i try again to reeboot but the same massage wil

  • Polymorphism

    Hai All I hava doubt regrading polymorphism concept . Firstly please look in to this program then explain me clearly class Shape protected Color color; protected int x, y; Shape (Color c, int xPosition, int yPosition) color = c; x = xPosition; y = yP

  • General error:out of memory. what am i doing wrong?

    My free agent 721.5 GB  free space, I have set my system settings all the the free agent memory. I have been working on a project with 3 sequences in them,JPEG, clips Mp4 . and had no problem playing them, editing  them. Until now....  .. my minimum

  • LSO Training catalogue

    Hi Experts, User is not able to view the training catalogue in the portal front. but it is displaying in backend system properly. Eventhough he  assigned all the required roles. All the functional settings are in place. Kindly provide some solution.

  • Just wanted to try the creative cloud- BUT keep getting a circle of problems- unable to use at all

    even spent the majority of the day trying to get through to adobe by phone--- hold times of 45 to an hour--- finally, finally get someone-- unfortunately couldn't understand much of what he said due to accent- i know this is a global world, but come