PO output type or userexit or enhancement point

Hi Experts,
We have configured the output type in Nace for sending print out with periodically scheduling job.
In our SAP all Po's must be create automatically......
But new requirement is ....if PO created manually through ME21n then print out should be send immediately
Can you please suggest on the above requirement
Suggestions provided : Either in User exit or
enhancement point in SAPLMEPO
Thanks in Advance....

Hi venkat,
in the print program the Fm which u wud be calling for smartform takes control parameters as input.
TDNEWID = 'X'.
TDIMMED = 'X'.
TDDEST='locl' <ur printer>
set these parameters of the struture tht u wud be passing as control parameters
it wud print automatically when smartform gets processed
Hope it will help you.
Regards ,
Nikita

Similar Messages

  • Set Output Type for specific Vendors Only

    Hi,
    I have created an output type to send external mail for PO. I want to restrict it to send the email to only a specific number of users. So I created consition records based on Companycode/vendor num/doc type.
    I entered the records for say x and y vendor only .
    But , Still when i test it with some other vendor whose record is not maintained it still sends the email?
    Is it the rt path I am on ? Is it the rt way to do this ? Based on the info available online and sdn i tried these steps ...I m not sure if thats correct.
    Pls let me know how to achieve this restriction ?
    Thanks,
    Shilpi

    Hi
    You check the access sequence for purchase order output type. Access sequence will determine which condition record to be checked first. If any other condition table with records has priority (defined in access sequence) then your condition record will not be taken into account for output type.
    Bala
    Note: Award points if helpful

  • Is any Userexit or BAdi or enhanc. point while create PO with reference .

    Hello Experts,
    Is there any Userexit or BAdI or Enhancement point while create P.O with reference .
    My requirement is while creating the P.O.(ME21N) with reference, The payment terms is getting copied from the reference P.O. and become grayed out (Non editable) instead of that user want the payment terms which we have maintained in (LFB1) Vendor Master.
    Please help me to resolve my problem.
    Edited by: Ketanp on Mar 7, 2012 11:48 AM

    Hi
    Try with badi ME_PROCESS_PO_CUST
    Regards
    Eduardo

  • Output type for Delivery note missing for shipping point

    Hi all,
       I have a plant setup to email delivery note which uses shipping point SGUS.  Condition record is setup for this shipping point using Del Typ/Shipping Point /Plant.  This uses the communication stragery ZINT.
    The email works well for this shipping point.  However, when delivery cannot be email using shipping point CHAL.  I guess this plant has 2 shipping points (sgus and chal).
    When delivery is created, output type for email is missing.   I already created condition rec
    for LF/CHAL/plant 121.  Still not working.
    Can anyone pls provide any suggestions ASAP ?
    Thanks
    Joyce

    Hi MdZ,
       I looked at the analysis output.  ZD04 output is what i am after.  Don't understand the followings:
    Q1 - why the ordering in anaylsis is different than in output determination procedure. For example:
    In Analysis Output: i have:
    LDOO    -  Output not found
    MAIL     - manual output
    PLOO    - Output not found
    Z940    - Output found
    ZBOL   - Output not found
    ZD04   - OUTPUT NOT FOUND
    The Output Determination Procedure as:
    Step  Counter   CType
    10       1           LD00
    12       1           ZLFX
    13       0           LALE
    14       1           ZBOL
    20        2          MAIL
    75       1           ZD04
    90       1           PL00
    110      1          Z940
    Step 10 should be read , then step 12, and so on.  Why is the ordering in procedure different than in
    output analysis ?
    Q2. Why did it display ZD04 not found when ZD04 appear on the delivery output as green light ? When i drill down, it show 2 access sequence.  Access 10 stated Output found.  Access 20 stated Output not found.
    Thank you.
    Joyce

  • How do automate using two output types in an invoice based on plant

    Hello,
    Can you tell me how to configure automatically two output types for the same invoice.
    My client has business in USA and Europe.We are using only one sales organization. But we need to print invoices in letter size and A4 size depending on whether the invoice is created in europe or in USA. So , I have created two output types, one for letter size and one for A4 size. How do I configure so that if it is based in a plant/shipping point in Europe it is printed using the A4  output type else in letter size. Please suggest.
    SAPSDUSER

    I do not think you can use plant/shipping point in your access sequence for invoice output on header level, unless you add these fields to header level kommunication structure and populate these fields in userexit.
    You can either
    1. define requirement routines for your 2 output types which are mutually exclusive (if plant = A routine 1 returns sy-subrc = 0, routine 2 returns sy-subrc <>0, if plant = B routine 1 returns sy-subrc <>0, routine 2 returns sy-subrc = 0). You can assign requirements to output type either in output determination procedure OR in the access sequence. I would do it in output determination procedure. Check transactions NACO or NACE.
    OR
    2. add your fields to komkbv3 communication structure, populate your fields in thsi structure in userexits which are called from the function module komkbv3_fill and then you can either use then in the access sequence for your output types or create routines as in case 1. but the logic will be a simple check statement since KOMKBV3 is available in these routines.
    3. In fact you can use one output type and select your layout in the print program itself... which may be even easier for you. We use this approach to select proper layout for GEOs which may have several layouts depending on region for example... so the output type is defined per country, then layout is selected by print program. (tnapr-fonam = ..., nast-spras = proper language, set country '' to use proper decimal & date format...)
    Message was edited by:
            Siarhei Mahulenka

  • Dumps while using output types

    Hi,
    We are to create a PO by giving a output type ZPO2 in the sales order. For this we have configured in NACE the ZPO2 output type with medium as 8 (special function). In NACE we have given the Z program name and the form name (Perform in the Z program).
    Now when we give the output type in the sales order and then while debugging we find that the Z program and the form given in NACE is called.
    But however when we check the sales order again in TCode VA02 there is a popup mentioning that the update was terminated. In ST22 there are 2 dumps.
    1) One with the error DYNPRO_SEND_IN_BACKGROUND and the description in the dump is
    The current ABAP program "RSNAST00" had to be terminated because one of the statements could not be executed.
    The termination occurred in line 910 of the source code of the (Include)  program "RSNAST00"
    2) The other dump mentions Too many parameters specified with PERFORM.
    In a subroutine call, there were more parameters than in the routine definition.
    Error in ABAP application program.
    The current ABAP program "RSNAST00" had to be terminated because one of the statements could not be executed.
    The termination occurred in line 910 of the source code of the (Include)  program "RSNAST00"
    In both the cases the termination occurs on:
    NAST = TEMP_NAST
    Please help me understand what is wrong and how can it be rectified.
    Thanks
    Mick

    Hi Mick James,
    About First Error..
    Check out there is an Enhancement Point there in program RSNAST00
    ENHANCEMENT-POINT OBJEKT_SPERREN SPOTS ES_RSNAST00 STATIC
    Check the code in this Enhancement Point...
    You must be executing some objects or FMs etc which can not be run in Background because it require SAP GUI
    And another You must be passing more parameters in Subroutine while calling it ... Check out the defination of Subroutine and number of parameters you are passing...
    Hope it will solve your problem..
    Thanks & Regards
    ilesh 24x7
    ilesh Nandaniya

  • Regarding output type and idoc trigger issue

    Hi
    i need to copy pgi quantity into sales order quantity for that i write a code into user exit MV50AFZ1. code is working fine but
    output type and idoc is not trigger due to this. In this exit to update sales order quantity i used bapi *BAPI_SALESORDER_CHANGE . can anyone tell me why o/p type and idoc not trigger ,what is the reason and what is the solution for this?
    Thanks
    Dinesh

    Hi Dinesh,
    Did you activate the enhancement for user exit ?
    Did you check if the output type is configured correctly ?
    Put a debugging point and see if control is coming there.
    Regards,
    Nisha Vengal.

  • Filtering Output Types during Output Determination (for Billing)

    Hi Gurus,
    My requirement is to filter out a few output types at the time of output determination from the procedure so that performance can be improved. Can you point out the specific place I can code for this?
    Is there some FM which is called for output determination,, which I can enhance for my requirement? Or any user exit that I can use for this? Please help!
    Regards,
    Rahul

    Hi Rahul,
    In that case you gotta use a new requirement inside your procedure.
    Go to Tx NACE, select your procedure and create a requirement rutine which compares the sales organization in your Z table. Using sy-subrc = 0 in case the query finds a value and sy-subrc = 4 if don't.
    This way you can determine the output types according to your relation in your Z table.
    Then use this requirement in all the output types of your procedure.
    I hope this helps
    Regards
    Edited by: John Smith on Jul 22, 2011 12:04 PM

  • Output type selection is missing for report  S_ALR_87013558

    Hi,
    In report S_ALR_87013558 output type selection is not seen in production. whereas it was there before, and its there in quality. Please help how should i bring it back.
    Points are awarded in full for correct answer.
    Thanks

    Hi Krishna
    Just check whether you the authorization to display the report in Production. You might have the authorisation if the development and quality, but some times not in Production.
    Regards
    Sridhar

  • Difference between implicit and explicit enhancement points

    Hi Folks,
    I had learned many documents to findout the difference between explicit and implicit enhancement point.I got the theoritical knowledge on that but losing on the practical side..
    Can anybody help me out with one real time scenario where the explicit enhancement points have been implemented and the step by step procedure to implement it..
    Hoping for the positive response from you..
    Regards,
    Rohan.

    Hi Rohan,
    In implicit they are available at the beginning of subroutines defined in the standard reports.
    Edit-> Enhancement operations->show implicit enhancement options.
    This will highlight all the implicit enhancements in the report.
    In Explicit enhancement we have two different types of enhancements -
    Enhancement point and Enhancement section.
    Enhancement point - SAP has some standard functionality defined for a report , but it may be required that you'll need to add your own code. In this case the code that you'll add will be executed along with the standard code.
    Enhancement section - SAP has its standard functionality defines but it may not suit your requirement, in that case you may need to add your code and you'll need that code to be executed only. By this method the existing code is automatically commented and a copy of the same code is available to edit.
    After executing the report only your code will be executed and the standard code will be bypassed.
    For Practicle implementation, follow this link.
    Link : [http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bb54c452-0801-0010-0e84-a653307fc6fc]
    i hope it will give you some clear picture....
    Thanks.
    Anurag

  • Enhancement points option: Function modules or BADI

    Hi, I am on ECC 6.0 and I need to validate and set some requirement in customer sales area data when user input the document output message in Documents tab strip screen 7003 of sapmf02d  in transaction XD01 or XD02.
      I found that there is function module EXIT_SAPMF02D_001 that I probably can use to create an implicit enhancement point to validate table T_KNVD or  I can use BADI customer_add_data.  Can someone suggest which way is better and why?  I am new to this so could someone show me screen by screen on how to create and implement BADI.
    I am confusing about should I create a ZBADI or using existing BADI customer_add_data.  If I use existing BADI how can I add my own method with my own code. 
    Thanks.

    Thanks. Could you explain to me how does the custom BADI get call to execute my code?  Say
    I have a customer document screen 7326 (Customer Master Subscreen SD Documents in program  SAPMF02D).  What I want is when user click save, I want to do some validation on the output message that they enter and issue some warning or error messages.
      I am on ECC 6.0 so I can create a BADI from Enhancement spot not from SE18.   SAP has a BADI called CUSTOMER_ADD_DATA with class CL_EX_CUSTOMER_ADD_DATA and interface IF_EX_CUSTOMER_ADD_DATA. 
    When I create a ZBADI_CUST, which interface class I put in the IF_EX_CUSTOMER_ADD_DATA
    or a ZIF_EX_XX so that I can create my own method?  How does the BADI get called when I am in transaction XD02 and click the save button?  Could you kindly show me step by step the procedure.
    Thanks.

  • Table for output type of a delivery document

    Hi guys,
    Would you know where could I find the output type of a delivery document espcially after I posted a GI in Shipment? Basically, It should reflect in devlivery document. So I am not sure if I should look at the delivery tables or goods issue.
    Help me guys!
    POints for the helpful ideas.
    THanks!

    Hi,
    There are 2things to be noted here.
    1. If your output type was already triggered once, then it should be visible in display mode also, with a Green colour button (if it is processed and the print out  is obtained). The fact that the output type is not seen in display  mode, says that the output type so far has nto been triggered.
    2. Seeing the output type coming in yellow colour in change mode of delivery document is expected. This means that the output is getting triggered now.If you save teh document now, you will get the print out.When you go in display mode again after a gap of say 1min, you can see the same output in Green colour as mentioned earlier.
    I hope this clarifies your doubt.Please let me know if you need some more info
    You can reward me if it helped you

  • Output type for the managed codes cut letter is hard coded

    Hello,
    Very Good afternoon!
    I have a requirement to create new Output Types for a Smart Form.
    The already existing Output types are hard coded as shown Below :
    CONSTANTS : c_kschl_order LIKE nast-kschl
                             VALUE 'ZUS0',
                c_kschl_order1 LIKE nast-kschl
                             VALUE 'ZUS1',
    Now they do not want to use ZUS1. Insted they wnat to use New Output Types.
    u2022 Remove ZUS1 as we no longer use this one.
    u2022     Add ZAU0
    u2022     Add ZNZ0
    u2022     Add ZJP0
    u2022     Add ZCN0
    u2022     Add ZKR0
    How to add these Output types without Hardcoding as shown ABove.
    Any Suggestions will be appreciated.....
    For reference..I will paste the code of the Program here.
    Here is the code  :
                     PROGRAM DECLARATION
    PROGRAM ID           Z_RVADOR01_SALES_CUT_LETTER
    TABLES: vbak,    "Sales Document: Header Data
           vbap,    "Sales Document: Item Data
           vbpa,    "Sales Document: Partner
           vbep,    "Sales Document: Schedule Line Data
           kna1,    "General Data in Customer Master
           MARA,    "Material Master
            KOMK,                          "Communicationarea for conditions
            KOMP,                          "Communicationarea for conditions
            KOMVD,                         "Communicationarea for conditions
            VBCO3,                         "Communicationarea for view
            VBDKA,                         "Headerview
            VBDPA,                         "Itemview
            VBDPAU,                        "Subitemnumbers
            CONF_OUT,                      "Configuration data
            SADR,                          "Addresses
            TVAG,                          "Reason for rejection
            VEDKA,                         "Servicecontract head data
            VEDPA,                         "Servicecontract position data
            VEDKN,                         "Servicecontract head notice data
            VEDPN,                         "Servicecontract pos. notice data
            RISERLS,                       "Serialnumbers
            KOMSER,                        "Serialnumbers for print
            TVBUR,                         "Sales office
            TVKO,                          "Sales organisation
            ADRS,                          "Communicationarea for Address
            FPLTDR,                        "billing schedules
            WTAD_ADDIS_IN_SO_PRINT,        "additional
            WTAD_BUYING_PRINT_EXTRA_TEXT,  "texts belonging to additional
            adrc,
            adr6,
            t247.
    INCLUDE RVADTABL.
    INCLUDE RVDIREKT.
    INCLUDE VEDADATA.
    data for access to central address maintenance
    INCLUDE SDZAVDAT.
    TYPE-POOLS: ADDI.
    DATA PRICE_PRINT_MODE(1) TYPE C.       "Print-mode
    DATA: RETCODE   LIKE SY-SUBRC.         "Returncode
    DATA: REPEAT(1) TYPE C.
    DATA: XSCREEN(1) TYPE C.               "Output on printer or screen
    DATA: BEGIN OF STEU,                   "Controldata for output
            VDKEX(1) TYPE C,
            VDPEX(1) TYPE C,
            KBKEX(1) TYPE C,
            KBPEX(1) TYPE C,
          END OF STEU.
    DATA: BEGIN OF TVBDPA OCCURS 0.        "Internal table for items
            INCLUDE STRUCTURE VBDPA.
    DATA: END OF TVBDPA.
    DATA: BEGIN OF TKOMV OCCURS 50.
            INCLUDE STRUCTURE KOMV.
    DATA: END OF TKOMV.
    DATA: BEGIN OF TKOMVD OCCURS 50.
            INCLUDE STRUCTURE KOMVD.
    DATA: END OF TKOMVD.
    DATA: BEGIN OF TVBDPAU OCCURS 5.
            INCLUDE STRUCTURE VBDPAU.
    DATA: END   OF TVBDPAU.
    DATA: BEGIN OF TKOMCON OCCURS 50.
            INCLUDE STRUCTURE CONF_OUT.
    DATA: END   OF TKOMCON.
    DATA: BEGIN OF TKOMSERVH OCCURS 1.
            INCLUDE STRUCTURE VEDKA.
    DATA: END   OF TKOMSERVH.
    DATA: BEGIN OF TKOMSERVP OCCURS 5.
            INCLUDE STRUCTURE VEDPA.
    DATA: END   OF TKOMSERVP.
    DATA: BEGIN OF TKOMSERVHN OCCURS 5.
            INCLUDE STRUCTURE VEDKN.
    DATA: END   OF TKOMSERVHN.
    DATA: BEGIN OF TKOMSERVPN OCCURS 5.
            INCLUDE STRUCTURE VEDPN.
    DATA: END   OF TKOMSERVPN.
    DATA: BEGIN OF TKOMSER OCCURS 5.
            INCLUDE STRUCTURE RISERLS.
    DATA: END   OF TKOMSER.
    DATA: BEGIN OF TKOMSER_PRINT OCCURS 5.
            INCLUDE STRUCTURE KOMSER.
    DATA: END   OF TKOMSER_PRINT.
    DATA: BEGIN OF TFPLTDR OCCURS 5.
            INCLUDE STRUCTURE FPLTDR.
    DATA: END   OF TFPLTDR.
    DATA: TADDI_PRINT TYPE ADDI_SO_PRINT_ITAB WITH HEADER LINE.
    TYPES:BEGIN OF ty_orders ,
         xblnr    LIKE  mkpf-xblnr,       "delivery number
         erfmg    LIKE  mseg-erfmg,       "goods issue quantity
         custname LIKE  kna1-name1,       "customer name
         bstnk    LIKE  vbak-bstnk,       "purchase order number
         ean11    LIKE  vbap-ean11,       "upc
         kdmat    LIKE  vbap-kdmat,       "customer material code
         arktx    LIKE  vbap-arktx,       "description
         csrno    LIKE  kna1-kunnr,       "customer service rep number
         spras    LIKE  kna1-spras,       "customer language key
         csrname  LIKE  kna1-name1,       "customer service rep name
         csremail LIKE  adr6-smtp_addr,   "csr email
         csrphone LIKE  kna1-telf1,       "csr telephone
         csrext   LIKE  adrc-tel_extens,  "csr extension
         csrfax   LIKE  kna1-telfx,       "csr fax
         total    LIKE  lips-lfimg,       "cut quantity
         ldate(18)    TYPE c,
       END OF ty_orders.
    CONSTANTS: c_kschl_order LIKE nast-kschl
                             VALUE 'ZUS0',
                c_kschl_order1 LIKE nast-kschl
                             VALUE 'ZUS1',            c_parvw_shipto LIKE vbpa-parvw
                             VALUE 'WE',
                c_parvw_csr    LIKE vbpa-parvw
                             VALUE 'ZS',
                 c_eng(1)       TYPE c VALUE 'E',
                 c_sep(1)       TYPE c VALUE '/',
                 c_sale(25) type c VALUE 'Sales Order'.
    DATA: WA_VBAK TYPE VBAK,
          tbl_ord TYPE ty_orders OCCURS 0 WITH HEADER LINE,
          w_csrname(30)  TYPE c,
         w_csrno(30)    TYPE c,
         w_email    LIKE adr6-smtp_addr,
         f_shipto_found     TYPE c,
         w_custname(30) TYPE c,
         w_month(2),
         w_ldate(18),
         w_total LIKE lips-lfimg,
         w_lines        TYPE i VALUE 0,
         f_mail(1)  TYPE c,
         cnt_1          TYPE i VALUE 0,
         cnt_2          TYPE i VALUE 0,
         tbl_otf     LIKE itcoo OCCURS 0 WITH HEADER LINE,
         w_type(25)     TYPE c,
         st_doc_data   LIKE sodocchgi1,
         tbl_objtxt    LIKE solisti1 OCCURS 10 WITH HEADER LINE,
         tbl_line      LIKE tline OCCURS 0 WITH HEADER LINE,
         tbl_attach    LIKE solisti1 OCCURS 10 WITH HEADER LINE,
         tbl_objhead   LIKE solisti1 OCCURS 10 WITH HEADER LINE,
         tbl_proc_para LIKE soparai1 OCCURS 10 WITH HEADER LINE,
         tbl_maillist  LIKE somlreci1 OCCURS 10 WITH HEADER LINE,
         tbl_pack_list LIKE sopcklsti1 OCCURS 10 WITH HEADER LINE,
         tbl_cpo      LIKE itcpo OCCURS 0 WITH HEADER LINE,"SAPscript output
                                                                " interface
         tbl_cpp LIKE itcpp OCCURS 0 WITH HEADER LINE,"SAPscript output
                                                       " parameters
         tbl_smtp  TYPE szadr_adsmtp_line OCCURS 0 WITH HEADER LINE,
         tbl_cdhdpos LIKE cdshw OCCURS 0 WITH HEADER LINE,
         tbl_cdpos LIKE cdshw OCCURS 0 WITH HEADER LINE,
         wrk_lines LIKE sy-tabix,
         hltlines   TYPE i,
         off1       TYPE p,
         fle1(2)    TYPE p,
         fle2(2)    TYPE p,
         htabix     LIKE sy-tabix,
         hfeld(500) TYPE c.
    FORM ENTRY USING RETURN_CODE US_SCREEN.
    if sy-tcode = 'VA01'.
      IF nast-kschl = c_kschl_order.
      SELECT SINGLE * FROM VBAK INTO WA_VBAK WHERE vbeln = nast-objky.
      IF SY-SUBRC = 0.
      CLEAR RETCODE.
      XSCREEN = US_SCREEN.
      PERFORM PROCESSING USING us_screen.
      IF RETCODE NE 0.
        RETURN_CODE = 1.
      ELSE.
        RETURN_CODE = 0.
      ENDIF.
       ELSE.
          retcode = sy-subrc.
          syst-msgid = 'ZVERROR'.
          syst-msgno = '000'.
          syst-msgty = 'E'.
          syst-msgv1 = NAST-KSCHL.
         syst-msgv1 = 'Sales Order cut letter
                       for this order already issued'.
         syst-msgv2 = ' '.
          PERFORM protocol_update.
        ENDIF.
    ELSE.
        CLEAR retcode.
        xscreen = us_screen.
        PERFORM processing USING us_screen.
        IF retcode NE 0.
          return_code = 1.
        ELSE.
          return_code = 0.
        ENDIF.
      ENDIF.
    endif.
    ENDFORM.
          FORM PROCESSING                                               *
    FORM PROCESSING USING proc_screen.
    CASE nast-kschl.
        WHEN c_kschl_order.
          PERFORM get_orders.
          CHECK retcode = 0.
          PERFORM openform USING proc_screen vbak-landtx.
          CHECK retcode = 0.
          PERFORM layout.
          CHECK retcode = 0.
          CHECK proc_screen NE 'X'.
          w_type = c_sale.
          PERFORM send_email USING proc_screen.
      WHEN c_kschl_order1.
         PERFORM get_orders.
         CHECK retcode = 0.
         CHECK proc_screen NE 'X'.
         w_type = c_sale.
         PERFORM send_email USING proc_screen.
       WHEN OTHERS.
          retcode = 1.
          syst-msgid = 'E0'.
          syst-msgno = '430'.
          syst-msgty = 'E'.
          PERFORM protocol_update.
      ENDCASE.
      IF retcode EQ 0.
        syst-msgid = '69'.
        syst-msgno = '254'.
        syst-msgty = 'S'.
        syst-msgv1 = nast-kschl.
        PERFORM protocol_update.
      ELSE.
        syst-msgid = 'CKCC'.
        syst-msgno = '036'.
        syst-msgty = 'E'.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.
          FORM PROTOCOL_UPDATE                                          *
          The messages are collected for the processing protocol.       *
    FORM PROTOCOL_UPDATE.
      IF xscreen EQ space.
        CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
           EXPORTING
                MSG_ARBGB = SYST-MSGID
                MSG_NR    = SYST-MSGNO
                MSG_TY    = SYST-MSGTY
                MSG_V1    = SYST-MSGV1
                MSG_V2    = SYST-MSGV2
                MSG_V3    = SYST-MSGV3
                MSG_V4    = SYST-MSGV4
           EXCEPTIONS
                OTHERS    = 1.
       ELSE.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
    ENDFORM.
    *&      Form  get_orders
          text
    -->  p1        text
    <--  p2        text
    FORM get_orders.
    DATA : f_csr_found        TYPE c.
    SELECT SINGLE vbeln vkorg vdatu bstnk kunnr
        FROM   vbak
        INTO  (vbak-vbeln,vbak-vkorg,vbak-vdatu,vbak-bstnk,vbak-kunnr)
        WHERE vbeln EQ nast-objky.
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'VN'.
        syst-msgno = '203'.
        syst-msgty = 'E'.
        syst-msgv1 = 'VBAK'.
        syst-msgv2 = sy-subrc.
        PERFORM protocol_update.
      ENDIF.
      SELECT vbeln posnr matnr pmatn arktx abgru kdmat werks
      FROM vbap
      INTO (vbap-vbeln,vbap-posnr,vbap-matnr,vbap-pmatn,
    vbap-arktx,vbap-abgru,vbap-kdmat,vbap-werks)
      WHERE vbeln = vbak-vbeln
      AND abgru NE space "select items havng Rejection Reason
      and PSTYV NE 'ZHDR'.
    to check whether the reason for rejection was picked from the
    managed codes tables
    data: war_abgru type abgru,
          w_exist type c.
    clear : war_abgru, w_exist.
      select single abgru  from ZMAT_REJ002
                    into war_abgru
                    where vkorg = vbak-vkorg
                    and kunnr <> vbak-kunnr
                    and MATNR = vbap-matnr
                    and datef <= vbak-vdatu
                    and datet >= vbak-vdatu.
       if sy-subrc <> 0.
             select single abgru from ZMAT_REJ003
                              into war_abgru
                              where vkorg = vbak-vkorg
                              and kunnr <> vbak-kunnr
                              and MATNR = vbap-matnr
                              and datef <= vbak-vdatu
                              and datet >= vbak-vdatu.
             if sy-subrc <> 0.
                    select single abgru from ZMAT_REJ001
                              into war_abgru
                              where vkorg = vbak-vkorg
                              and werks <> vbap-werks
                              and matnr = vbap-matnr
                              and datef <= vbak-vdatu
                              and datet >= vbak-vdatu.
                    if sy-subrc <> 0.
                         select single abgru from ZMAT_REJ004
                                             into war_abgru
                                             where vkorg = vbak-vkorg
                                             and matnr = vbap-matnr
                                             and datef >= vbak-vdatu
                                             and datet <= vbak-vdatu.
                         if sy-subrc <> 0.
                         else.
                         w_exist = 'X'.
                         endif.
                   else.
                   w_exist = 'X'.
                   endif.
             else.
             w_exist = 'X'.
             endif.
       else.
       w_exist = 'X'.
       endif.
    if w_exist = 'X'.
    end for check from managed codes table
    *to find the quantity fields
        SELECT SINGLE wmeng bmeng
        FROM vbep
        INTO (vbep-wmeng,vbep-bmeng)
        WHERE vbeln EQ vbap-vbeln
        AND   posnr EQ vbap-posnr.
    *to get info about the customer
        SELECT SINGLE kunnr
        FROM vbpa
        INTO vbpa-kunnr
        WHERE  vbeln EQ vbak-vbeln
        AND    parvw EQ c_parvw_shipto.
         IF sy-subrc EQ 0.
          f_shipto_found = 'X'.
          SELECT SINGLE name1 spras
            FROM kna1
            INTO (kna1-name1,kna1-spras)
            WHERE kunnr EQ vbpa-kunnr.
          IF sy-subrc EQ 0.
            w_custname = kna1-name1.
            CLEAR kna1-name1.
          ENDIF.
         ENDIF.
         SELECT SINGLE kunnr
        FROM vbpa
        INTO vbpa-kunnr
        WHERE vbeln EQ vbak-vbeln
        AND   parvw EQ c_parvw_csr.
        IF SY-SUBRC EQ 0.
         f_csr_found = 'X'.
          SELECT SINGLE kunnr name1 name2 adrnr
           FROM kna1
           INTO (kna1-kunnr,kna1-name1,kna1-name2,
                 kna1-adrnr)
           WHERE  kunnr EQ vbpa-kunnr.
          IF sy-subrc EQ 0.
            w_csrno = kna1-kunnr.
            w_csrname = kna1-name1.
            CLEAR kna1-name1.
               SELECT SINGLE tel_number tel_extens fax_number
                 FROM adrc
                 INTO (adrc-tel_number,adrc-tel_extens,
       adrc-fax_number)
                 WHERE addrnumber EQ kna1-adrnr.
            CLEAR: adr6, w_email.
            SELECT SINGLE * FROM adr6 WHERE addrnumber = kna1-adrnr.
            IF sy-subrc = 0.
              w_email = adr6-smtp_addr.
            ENDIF.
          ENDIF.
        ENDIF.
    *to get the date format in french
        IF kna1-spras NE c_eng.
          w_month = sy-datum+4(2).
          SELECT SINGLE ltx
            FROM t247
            INTO t247-ltx
            WHERE spras EQ kna1-spras
            AND mnr EQ w_month.
          CONCATENATE sy-datum+6(2)
                      t247-ltx
                      sy-datum+0(4)
                      INTO w_ldate
                      SEPARATED BY space.
          ELSE.
          CONCATENATE sy-datum+4(2)
                      sy-datum+6(2)
                      sy-datum+0(4)
                      INTO w_ldate
                      SEPARATED BY c_sep.
        ENDIF.
        w_total = vbep-wmeng - vbep-bmeng.
         IF w_total GT 0.
         PERFORM fill_orders.
        ELSE.
          IF vbap-abgru NE space.
            w_total = vbep-wmeng.
            PERFORM fill_orders.
          ENDIF.
        ENDIF.
        CLEAR vbap.
        endif.           " check for w_exist for Managed Codes entry
    ENDSELECT.
    IF tbl_ord[] IS INITIAL.
        retcode = 1.
        syst-msgid = 'FZ'.
        syst-msgno = '027'.
        syst-msgty = 'E'.
        PERFORM protocol_update.
      ENDIF.
      IF f_csr_found IS INITIAL.
        syst-msgid = '8B'.
        syst-msgno = '127'.
        syst-msgty = 'W'.
        syst-msgv1 = c_parvw_csr.
        PERFORM protocol_update.
      ENDIF.
      IF f_shipto_found IS INITIAL.
        syst-msgid = '8B'.
        syst-msgno = '127'.
        syst-msgty = 'W'.
        syst-msgv1 = c_parvw_shipto.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    " get_orders
    *&      Form  layout
          text
    -->  p1        text
    <--  p2        text
    FORM layout.
    SORT tbl_ord BY bstnk kdmat.
      LOOP AT tbl_ord.
        AT FIRST.
          PERFORM writeform_text.
        ENDAT.
        PERFORM writeform.
        AT LAST.
          PERFORM writeform_footer.
        ENDAT.
      ENDLOOP.
      CLEAR : cnt_1,cnt_2.
      PERFORM closeform.
    ENDFORM.                    " layout
    *&      Form  openform
          text
    FORM openform USING us_screen us_country.
    DESCRIBE TABLE tbl_ord LINES w_lines.
      IF w_lines EQ 0.
        retcode    = '1'.
        syst-msgid = 'FE'.
        syst-msgno = '078'.
        syst-msgty = 'E'.
        PERFORM protocol_update.
      ENDIF.
      CHECK retcode EQ 0.
    INCLUDE zrvadopfo.
    ENDFORM.                    " openform
    *&      Form  send_email
          text
         -->P_PROC_SCREEN  text
    FORM send_email USING    PROC_SCREEN.
    f_mail = 'X'.
      PERFORM openform USING proc_screen vbak-landtx.
      LOOP AT tbl_ord.
        AT FIRST.
          PERFORM writeform_text.
        ENDAT.
        PERFORM writeform.
        AT LAST.
          PERFORM writeform_footer.
        ENDAT.
      ENDLOOP.
      CLEAR cnt_2.
      PERFORM closeform.
      CALL FUNCTION 'CONVERT_OTF'
           EXPORTING
                format                = 'PDF'  "'ASCII'
           IMPORTING
                bin_filesize          = st_doc_data-doc_size
           TABLES
                otf                   = tbl_otf
                lines                 = tbl_line
           EXCEPTIONS                                           "DEVK912166
                err_max_linewidth     = 1
                err_format            = 2
                err_conv_not_possible = 3
                OTHERS                = 4.
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'OA'.                                      "DEVK912166
        syst-msgno = '186'.                                     "DEVK912166
        syst-msgty = 'E'.                                       "DEVK912166
        PERFORM protocol_update.
      ENDIF.
      REFRESH tbl_objtxt.
      CLEAR tbl_objtxt.
      CLEAR tbl_proc_para.
      REFRESH tbl_proc_para.
      CLEAR tbl_maillist.
      REFRESH tbl_maillist.
      CLEAR tbl_pack_list.
      REFRESH tbl_pack_list.
      st_doc_data-obj_name   = 'Sales Order Cut Letter'.
      st_doc_data-obj_langu   = 'E'.                            "DEVK905849
      st_doc_data-sensitivty  = 'F'.                            "DEVK905849
      st_doc_data-obj_prio    =  1.                             "DEVK905849
      CONCATENATE w_type 'Cut Letter' INTO          "#EC NOTEXT
                                  st_doc_data-obj_descr  SEPARATED BY space.
      DATA w_line(3) TYPE c.
      PERFORM format_pdf.                                       "DEVK905849
      concatenate VBAK-VBELN '.PDF' into tbl_objhead.
    tbl_objhead = 'Sales Order Cut Letter.PDF'.
      APPEND tbl_objhead.
           "DEVK905849
      CLEAR wrk_lines.
      DESCRIBE TABLE tbl_attach LINES wrk_lines.
    fields needed for email
      tbl_maillist-com_type = 'INT'.
      tbl_maillist-receiver =  w_email.
      tbl_maillist-rec_type = 'U'.
      APPEND tbl_maillist.
    send email
      CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
                                      STARTING NEW TASK 'MAIL'
           EXPORTING
                document_data              = st_doc_data
                document_type              = 'PDF'
                COMMIT_WORK                = 'X'    " added after ECC6.0 upgrade
           TABLES
                object_header              = tbl_objhead
                object_content             = tbl_objtxt
                receivers                  = tbl_maillist
           EXCEPTIONS                                           "DEVK912166
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'ZA_G'.                                    "DEVK912166
        syst-msgno = '922'.                                     "DEVK912166
        syst-msgty = 'E'.                                       "DEVK912166
        syst-msgv1 = sy-subrc.                                  "DEVK912166
        syst-msgv2 = tbl_smtp-adsmtp-smtp_addr.                 "DEVK912166
        PERFORM protocol_update.
        syst-msgid = 'VW'.
        syst-msgno = '001'.
        syst-msgty = 'E'.
        syst-msgv1 = 'Print successful:email Recepient Invalid'."#EC NOTEXT
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    " send_email
    *&      Form  fill_orders
          text
    -->  p1        text
    <--  p2        text
    FORM fill_orders.
    tbl_ord-bstnk    = vbak-bstnk.
      tbl_ord-kdmat    = vbap-kdmat.
      tbl_ord-xblnr    = vbak-vbeln.
      tbl_ord-ean11    = vbap-pmatn.
      tbl_ord-arktx    = vbap-arktx.
      tbl_ord-csrno    = w_csrno .
      tbl_ord-csremail = w_email.
      tbl_ord-spras    = kna1-spras .
      tbl_ord-csrphone = adrc-tel_number.
      tbl_ord-csrfax   = adrc-fax_number.
      tbl_ord-csrext   = adrc-tel_extens.
      tbl_ord-total    = w_total.
      tbl_ord-custname = w_custname.
      tbl_ord-csrname  = w_csrname .
      tbl_ord-ldate    = w_ldate.
      APPEND tbl_ord.
      CLEAR tbl_ord.
      CLEAR w_total.
      CLEAR w_ldate.
    ENDFORM.                    " fill_orders
    *&      Form  writeform_text
          text
    -->  p1        text
    <--  p2        text
    FORM writeform_text.
    CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                element = 'WTEXT'
                window  = 'WINDOW2'
           EXCEPTIONS
                element = 1
                window  = 2.
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'EBR'.
        syst-msgno = '056'.
        syst-msgty = 'E'.
        syst-msgv1 = 'WTEXT'.
        syst-msgv2 = 'WINDOW2'.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    " writeform_text
    *&      Form  writeform
          text
    -->  p1        text
    <--  p2        text
    FORM writeform.
    CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                element = 'EMAIN'
                window  = 'MAIN'
           EXCEPTIONS
                element = 1
                window  = 2.
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'EBR'.
        syst-msgno = '056'.
        syst-msgty = 'E'.
        syst-msgv1 = 'WTEXT'.
        syst-msgv2 = 'WINDOW2'.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    " writeform
    *&      Form  writeform_footer
          text
    -->  p1        text
    <--  p2        text
    FORM writeform_footer.
    IF nast-spras = 'N'.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  element = 'FOOTER'
                  window  = 'MAIN'
             EXCEPTIONS
                  element = 1
                  window  = 2.
      ENDIF.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                element = 'WFOOTER'
                window  = 'WINDOW12'
           EXCEPTIONS
                element = 1
                window  = 2.
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'EBR'.
        syst-msgno = '056'.
        syst-msgty = 'E'.
        syst-msgv1 = 'WFOOTER'.
        syst-msgv2 = 'WINDOW12'.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    " writeform_footer
    *&      Form  closeform
          text
    -->  p1        text
    <--  p2        text
    FORM closeform.
    CALL FUNCTION 'CLOSE_FORM'
           TABLES
                otfdata                  = tbl_otf
           EXCEPTIONS
                unopened                 = 1
                bad_pageformat_for_print = 2
                OTHERS                   = 3.
      IF sy-subrc NE 0.
        retcode = sy-subrc.
        syst-msgid = 'PS'.
        syst-msgno = '005'.
        syst-msgty = 'E'.
        PERFORM protocol_update.
      ENDIF.
    ENDFORM.                    " closeform
    *&      Form  format_pdf
          text
    -->  p1        text
    <--  p2        text
    FORM format_pdf.
    FIELD-SYMBOLS <fs>.
      DESCRIBE TABLE tbl_line    LINES  hltlines.
    DESCRIBE FIELD tbl_line    LENGTH fle1 IN BYTE MODE . Defect#1579-
    DESCRIBE FIELD tbl_objtxt  LENGTH fle2 IN BYTE MODE . Defect#1579-
    Start of Defect#1579+
      DESCRIBE FIELD tbl_line    LENGTH fle1 IN CHARACTER MODE.
      DESCRIBE FIELD tbl_objtxt  LENGTH fle2 IN CHARACTER MODE.
    End of Defect#1579+
      CLEAR   tbl_objtxt.
      REFRESH tbl_objtxt.
      LOOP AT tbl_line.
        htabix = sy-tabix.
        MOVE tbl_line TO hfeld+off1.
        IF htabix = hltlines.
          fle1 = strlen( tbl_line ).
        ENDIF.
        off1 = off1 + fle1.
        IF off1 GE fle2.
          CLEAR tbl_objtxt.
          tbl_objtxt = hfeld(fle2).
          APPEND tbl_objtxt.
          SHIFT hfeld BY fle2 PLACES.
          off1 = off1 - fle2.
        ENDIF.
        IF htabix = hltlines.
          IF off1 GT 0.
            CLEAR tbl_objtxt.
            tbl_objtxt = hfeld(off1).
            APPEND tbl_objtxt.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " format_pdf
    ANy Suggestion or help will be appreciated!
    Regards,
    Kittu
    Edited by: Kittu on Jun 30, 2008 12:32 PM

    Hello Julie Waller,
    Very Good evening!
    Thank you very much for your response!
    Sometimes...I miss the basic things and start concentarcting on typical ways to fix the issue. ....which will only make my issue critical. 
    Hello Sathya,
    Thank you for your response!
    POints are rewarded..
    Have a great day ahead!
    Regards,
    Kittu

  • VL02N Output type issue.

    Hi,
    When I execute the tcode VL02N for any output type (ZEU5) for print preview and external mail then it is giving error that "Output could not be issued".
    I have also checked the config of NACE , it seems to be ok.
    So what are the other possibilities of this error.
    Thanking you in advance,
    Regards,
    Vikram

    Configuration of NACE does not make all the difference. The only way to come to the solution is to debug from point when button is clicked for print preview or etc.
    Possible reasons may be there calling program before making a call to script or smartform encountering a problem. It may be that program is not able to get the desired data correctly from the tables or some other problem(Mainly due to subrc not coming to be 0).
    Apart from this even if call is made successfully to the form but inside there could be problem like using command in smartform.
    Thanks,
    Mark

  • Output type is not getting triggered for ship to party in shippment output

    Hi,
    we have maintained output determination procedure for shipments. It was working fine.
    We have just added new condition table to access sequence, and maintained the condition records also for condition type ZABC. I have checked in NACE, Application V7, I am able to find the condition type. checked in VV73, condition records displayed. But in VT02N/VT03N, we are unable to get print for  the output type.
    Why this is happening? we are able to see the procedure, condition type, access sequence, condition records in place ...why condition type ZABC is not getting triggered in the shipment output.
    Please advise and let me know if you need more details....thanks in advance.
    Thanks,
    SS

    Hi Noel,
    Thanks for your time and reply.
    We have output determination procedure for shipments, condition type ZABC, Access sequence ZABC, Condition tables 550,600,650,700 already maintained. output is working fine.we have a new requirement and created new condition table 700 with the fields" Ship to party and transportation planing point "(Condition table 700 ). we assigned the condition table 700 to access sequence ZABC. Condition type  ZABC already placed in Output determination procedure.
    We test the output, new condition record is not triggering in the output, even in output determination analysis also, we are unable to see the record 700 for the condition type ZABC. we are not sure what is the reason for the condition table that  is not picking up ? Why condition type ZABC with condition record 700 not visible in output determination analysis.
    I have checked condition records, output determination procedure. Please advise and let me know you need more details.
    Thanks,
    SS

Maybe you are looking for

  • Dreamweaver 8 Crashes on Start-up

    Hello Adobe World, I posted this question several days ago but haven't received a solution. My DW 8.0.2 crashes at start-up right about the time the DW start-up screen says "Initializing Data". I am running OSX 10.4.11. I have uninstalled the program

  • Bootcamp Trackpad Click is NOT Working

    Hi Everyone I have Macbook Pro (A1278) and installed bootcamp and Windows 7 prfessional (x64). in windows 7 the Click(Bottom Left Corner  and Right click(Bottom Right Corner) button is not woking.

  • I need to see whats taking so much space my HDD is full and dont see of what

    my HDD is full and dont see big files at all pls help i want to delete stuff but the stuff that i have does not have big files at all. there must be folder some where that i cant see them

  • Tags showing up on Google

    My website is showing up on Google, but the description is reading as follows: <<photography shapeimage1_link0. bio shapeimage2_link0. contact shapeimage3_link0.>> What is the best way to correct this? Do I have to insert Meta tags somehow, or did I

  • I need help removing hosts from all Active Directory Groups! - PowerShell

    In our environment, we use AD Groups to create collections in Configuration Manager. I have a few PC's that need to be removed from all AD Groups in our Forest. I do not know how many groups these computers are in and to script it in PowerShell. Coul