Special Function in Output type for PO
Hi Expetrs:
Can any please tell me how to write a code for a Purchase Order in the transmission medium "8" ie., Special Function and the PO Script output is converted to PDF file and it should be send to the server path location through FTP.
Thanks,
Venkat
Dear Muthukumar,
Thanks for this.
Could you please explain more about it. I am having similar requirement.
I want to save document on FTP server immediately after saving invoice in PDF format. So how can I use transmission medium 8 and add program to it.
Please help.
Similar Messages
-
Special function 8 - Output Type
Hi gurus,
I created a new Output Type with special function 8 called ZPDF in transaction NACE with application MR (invoice verification) and I added to that Output Type ZPDF our custom program called ZXXX_ARCHIVE_LINK in order to post into the MM invoice, a PDF who cames from the SD inovoice.
The SD invoice number is recorder into the field "Referece" in the MM invoice.
So, the program should (through the output type and the program):
1. Read the MM invoice number generated (NAST table into NAST-OBJKY).
2. Enter to table RBKP with MM invoice number RBKP-BELNR and get the SD invoice number: RBKP-XBLNR.
3. Enter with SD invoice number XBLNR to table TOA01-OBJECT_ID And get TOA01-ARC_DOC_ID.
4. Call FM ARCHIV_CONNECTION_INSERT.
The problem here is when I post a MM inovice in MIRO transaction the system through the condition record added the ZPDF Output Type but don´t read the program ZMIC_INVOICE_PDF_ARCHIVE_LINK added to that output type. The status of the output type is green (but without any processing log). I checked the setting for the Output Type like 100 times and everything seems to be OK.
<removed by moderator>. Any advice?
I don´t know why SAP don´t call the program. I think the ABAP code is wrong:
REPORT ZXXX_ARCHIVE_LINK.
Table Declaration
TABLES: NAST, " Message Status
CMFP, " Storage Structure for Errors Collected
EDIDS, " Status Record (IDoc)
VBRK, " Billing Document: Header Data
TOA01. " Link table 1
TYPES: BEGIN OF TY_RBKP,
BELNR TYPE RE_BELNR, " Document number of an invoice document
XBLNR TYPE XBLNR1, "SAEOBJID, " Reference Document Number
END OF TY_RBKP.
TYPES: BEGIN OF TY_TOA01,
OBJECT_ID TYPE SAEOBJID, " SAP ArchiveLink: Object ID (object identifier)
ARC_DOC_ID TYPE SAEARDOID, " SAP ArchiveLink: Document ID
END OF TY_TOA01.
Data Declaration
DATA: WA_BELNR TYPE RE_BELNR ,
WA_ARC_DOC_ID TYPE TY_TOA01 , "-ARC_DOC_ID,
WA_SAP_OBJECT LIKE SAPB-SAPOBJID," TYPE TOAOM-SAP_OBJECT ,
ARC_DOC_ID TYPE TOAV0-ARC_DOC_ID,
GT_RBKP TYPE STANDARD TABLE OF TY_RBKP , "WITH HEADER LINE,
GT1_RBKP TYPE STANDARD TABLE OF TY_RBKP, " WITH HEADER LINE,
GT_ARC_DOC_ID TYPE STANDARD TABLE OF TY_TOA01, " -ARC_DOC_ID,
WA1_RBKP TYPE TY_RBKP ,
WA_RBKP TYPE TY_RBKP.
DATA: WA1_OBJECT_ID TYPE SAEOBJID.
DATA: WA_OBJKY TYPE NA_OBJKEY,
WA1_OBJKY TYPE RE_BELNR.
FORM entry USING ent_retco ent_screen.
CLEAR ent_retco.
PERFORM ARCHIV_CONNECTION_INSERT USING nast-objky ent_retco.
ENDFORM. "entry
FORM ARCHIV_CONNECTION_INSERT USING objky returncode.
* Select Reference Document Number from RBKP table
SELECT BELNR XBLNR
FROM RBKP
INTO TABLE GT_RBKP
WHERE BELNR = objky . " .WA1_OBJKY .
IF SY-SUBRC EQ 0 .
LOOP AT GT_RBKP INTO WA_RBKP.
WA1_OBJECT_ID = WA_RBKP-XBLNR .
CONCATENATE WA1_OBJECT_ID '%' INTO WA1_OBJECT_ID .
WA_SAP_OBJECT = WA_RBKP-BELNR .
SELECT OBJECT_ID
ARC_DOC_ID
FROM TOA01
INTO TABLE GT_ARC_DOC_ID
WHERE OBJECT_ID LIKE WA1_OBJECT_ID.
IF SY-SUBRC EQ 0 .
READ TABLE GT_ARC_DOC_ID INTO WA_ARC_DOC_ID INDEX 1.
ARC_DOC_ID = WA_ARC_DOC_ID-ARC_DOC_ID.
WA_SAP_OBJECT = WA_ARC_DOC_ID-OBJECT_ID.
ENDIF.
CALL Function Module:Link table operations
CALL FUNCTION 'ARCHIV_CONNECTION_INSERT'
EXPORTING
ARCHIV_ID = 'Z0'
ARC_DOC_ID = ARC_DOC_ID
AR_DATE = SY-DATUM
AR_OBJECT = 'MMILOGINV'
DEL_DATE = ' '
MANDANT = SY-MANDT
OBJECT_ID = WA_SAP_OBJECT
SAP_OBJECT = 'BUS2081'
DOC_TYPE = 'PDF'
BARCODE = ' '
EXCEPTIONS
ERROR_CONNECTIONTABLE = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: WA_RBKP.
ENDLOOP.
ENDIF.
ENDFORM.
Edited by: Thomas Zloch on Oct 26, 2011 10:52 AMok, if you set for your output type NAST-VSZTP=3 you can add code in your print program to display popup window in which
user specify own path for storing PDF...
but if output type will be created in background ( VSZTP ne 3) then
you must save PDF in server path...and user may download it by
cg3y...
regards, darek -
Special functions in output type
Hi
For all the output types I need to use transmission medium 8( Special function).Kindly let me know what is purpose of special functions and where to see output of the form .
Points will be rewarded.Hi,
Usually Special Function Output types are used if you are not using the standard outputs like IDOC, Print for which SAP standard programs and mehtods/Forms(SAP SCRIPTS) are available. If you want to create an output other than those or if you need some other functionality then you can maintain Special Function Output types and need to maintain the program to process that output type.
Thanks
vinod. -
Special function in output type
Hi Sap Gurus,
I am using special function ( 8 ) as medium of sending in my output which is defined for delivery.
If i try to process this output with dispatch time 3 ( Send application with own transaction ) its getting processed.
But if i try with option 4 ( Send immediately --at time of saving ) its giving an error.
Is there any standard SAP note or any pointer to solve this error
Thanks and Regards,
AbhijeetHi,
Use
You can process a message immediately by updating the application document or you can process it at a later time. For later processing you must use the report program RSNAST00 or a corresponding application function.
The individual possibilites are:
Time 1: The message is processed through report program RSNAST00. This report program can be scheduled periodically or started manually.
Time 2: As in time 1, but the message contains an earliest processing date and a requested processing time. The message is ignored by report program RSNAST00 before the requested date.
Time 3: The message is selected and processed by application specific programs. Processing can take place online or in the background.
Time 4: The message is processed when the application document is saved. No further processing of the message is necessary.
Kapil -
Transmission Medium NACHA = '8' Special function-executing output type
hi All,
i have requirement that through the Transmission medium '8' i need to assign the custom program to store the Smartform as PDF in the desktop location or the location where the user selects.
if i assigned the transmision medium as 8 for particular output type say ZAP1 . the particular output type is not getting displayed when i try to use issue output option through va22.
any pointers will be highly appreciated.
thanks.ok, if you set for your output type NAST-VSZTP=3 you can add code in your print program to display popup window in which
user specify own path for storing PDF...
but if output type will be created in background ( VSZTP ne 3) then
you must save PDF in server path...and user may download it by
cg3y...
regards, darek -
Hiding the Output types for ME22n transaction
Hi,
We have a requirement in removing the output types from the message tab of ME22n trasaction.we have defined 2 output types for the same NEU and ZFES a special function,we need to check if the PO is already assigned with ZFES then the NEU output types should not be displayed over there in messgaes tab.
Any pointers will be really helpful.
Thanks,
JayUse EXIT function VN000001 for output selection
write down your code as per your need .
thanks
abhishek -
Output types for delivery documents
Hi All,
Please help me out.
Thanks in advance,
Here i got a requirement like i already have the output types for the delivery documents.However i need to copy the existed output types into different names bcoz to customize it for different organization in different region.
The problem is i already copied the o/p types but when i went to vl03n and tris to see the output , am not able to find my o/p type there...am i need to do anything more..
Please help me out as i am a ABAPER and not the functional guy am facing lot of difficulty...
again thanks in advance.dear govardhan
please refer below
Output Determination Procedure
Output is a form of media from business to one of its business partners. The output can be sent to any of the partners defined in the document. Outputs are usually in the form of Order Confirmations, Freight List, Delivery Notes, Invoices & Shipping Notifications. Determining form of output is output determination
Types of Output: Print Output, Fax, Telex, E-Mail & EDI (Electronic Data Interchange)
PRINT OUTPUT:
SPRO- IMG- Basic Functions- Output Control- Output Determination- Output Det using Cond Tech- Output Det for Sales Documents & output determination for billing documents.
Create Condition Table: select the field Sales Doc Type from field catalog & Save
Maintain Access Sequence: 4-digits code & description. Assign condition table to access sequence. Select Accesses line item and Goto Fields. Fields will display the fields we have selected in the condition table i.e. sales doc type.
Select BA00 & Copy & Rename. Give the same 4-digit code as given to acc seq.
You Can Maintain:
Languages of Output
Partners (to whom we want to send output)
Print Program- print specification
Sap Script- layout
Assign Output Types to Partner Functions: go to new entries & assign your output type to partner functions.
Maintain Output Determination Procedure: V10000 (Standard Procedure). Go to new entries & create your own 6-digit code with descp. Select the procedure & go to Control Data. Here mention the output type i.e. cond type & leave requirement and manual only columns as blank.
Determination Rule: link the 6-digit procedure code to doc types.
Create Condition Records: VV11. Select document type and click on Communication. Mention partner function, medium, time. Output device: LP01, Spool request Name: SD_003, Suffix 2: order_confir & flag on print immediately.
Once you press enter you will come across 2 key combinations:
Sales organization/ Customer Number: fill SO, Customer No, Partner Function Abbreviation, Partner to whom the output should be sent, time, medium, language. {It contains: Sales Orgn, Customer, Partner Function (The abbreviated form of the name that identifies the Partner) (During output determination, the system determines the recipient of the output from the master record for the specified partner function. In this field, you can explicitly specify a recipient that will override the standard partner. There must also be a master record for the partner that is specified explicitly.), Medium, Time & Language.}
Order Type: Document Type, Partner Function (abbreviation), Partner, Medium, Time & Language.
In SAP we can send the documents to respective partner functions through different transmission mediums. SAP uses condition technique to determine output t relevant partners with relevant transmission mediums.
Out put determination procedure has a integration with technical module, as ABAPers has to write SMART forms and FORMS to print the output , that SMART form output can be send to relevant partner function through relevant transmission mediums.
Out put determination procedure for order confirmation: (V/57)
a) Maintain condition table:
Path:
IMG
SD
Basic functions
Output control
Output determination
Output determination using the condition technique
Maintain out put determination from for sales document
Maintain condition tables
Maintain out put condition table for sales document
Here we define condition table
Ex: 007 order type (sales order types)
Save it
b) Maintain output types:
IMG
SD
Basic functions
Output control
Output determination
Output determination using the condition technique
Maintain out put determination from for sales document
Maintain out put types
Here we define out put types
Ex: AF00 -- Inquiry
AN00 quotation
BA00 Order confirmation
BA01 EDI odd response
KRMLCredit processing
LP00 -- Scheduling agreement
MAIL Internal message
RD03cash sales invoice
Choose BA00 copy it and rename as a MA00
click on details icon
click on display to change icon
then again choose MA00 click on details icon
Maintain data in general data tab
General data tab:
Access sequence: 0010(order type)
In IMG define access sequence and assign to the output type
Check access to conditions:
This indicator allows the system to read the condition records for output. If it is not been activated then system determines out put from customer master ex: By following out put determination procedure DB0001
Check cannot be changed:
This control specifies whether the out put can be changed or not
Ex: direct mailings can be changed during processing
Check multiple issuing:
This indicator allows the system to send the output multiply
Ex: sales order has been sent for 10 items again one item has been added to sales order so that business has to issue the new out put for sold to party with added line items. This indicator allows the system to send out put repeatedly.
Check partner independent out put:
During output processing when the indicator has not set then system allows only specific functions in specific partner functions
Dont write processing:
This indicator determines whether system has to write processing log for output
Default values tab:
Dispatch time:
Ex: send immediately: when carry the application this indicator determines when the output should be sent.
Transmission medium:
Ex: print out
Fax
Telex
Internal send
EDI
Simple mail
Special function
Events (SAP business workflow)
Distribution (ALE)
Tasks (SAP business work flow)
Specify the transmission medium through which the output should be sent. (Ex: print output)
Communication strategy
Specify the communication strategy if you want to send the output externally
A) Time tab:
Check timing: (Periodic job not allowed)
This indicator allows the system to carry out print program periodically.
B) PRINT NEXT TAB):
Print parameter: Ex sales org.
Specify the print parameter.
Click on mail title & Text control button under dialog structure.
Here we assign title for the mail along with relevant text Ex:-EN (English)
Processing routines control button under dialog structure.
Here we assign programs form routines & form that are written by ABAPER, they they various transmission mediums.
Ex; - Transmission medium shortest program form routine
1 print out RVADOR entry
Click on position function control button here we assign relevant partner function to relevant transmission mediums
EX: print out: SP (Sold to party)
C) Maintain access sequences:
Here we define Access sequence.
EX: 0010 & Assign the condition tables to this output.
D) Assign out put types to partner function:
Here we assign output types along with transmission mediums to relevant partner functions.
EX: Out put type Transmission medium
MA00 1
2
6
A
MAIL 7
E) Maintain output determination procedure:
Here we define output determination procedure
Ex: V10000 - Order output
V05000 - Inquiry output
V06000 - quotation output
V10001 - Cash sales output
Choose output determination procedure EX; V10000, copy it& rename it as MA0000
Assign output type MA00 by going control date section.
Save it.
F) Assign output determination procedures;
Allocate sales document Header.
_ Choose sales document type OR & Assign output determination procedure i.e MA0000 & Assign output type MA00.
Assign sales document items.
-Choose item category TAN & Assign output determination procedure Ex: Ma0000
- save it & exit.
Maintain output records (vv11)
Path:
Logistic > S&D > Master data > output > sales document > VV11 Create
Specify output MA00, Click on Key combination & specify sales document type (OR), partner function (sp) transmission medium (1) dispatch type (4) language (EN)
Click on communication button on application tool bar
Specify output device LOCL or LP01
Check print immediately check release after output
Save it
Go to Va01 raise the sales order
Go to extra button output header edit.
Specify output type: MA00 partner function
Select line, click on communication methods
Specify logical destination
Check print immediately
Check release after output
go back save it & exit
Go to VA02, Go to Extras output header print preview
Check out (order confirmation
(ERROR: out put MA00 for partner cannot be processed)
rewards pls
siva -
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 PMHello 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 -
New Output type for purchase return excise invoice..?
Hi all
For purchase return process with exisable material.
Here I m using the transaction
1.J1IS to create purchase return excise invoice and
2.J1IV for posting to accounts & print purchase return excise invoice
.In standard SAP the output for purchase return excise invoice is JEXC.
here my query is started,
ABAPer created the new program for purchase return output with all new layouts,
And from functional side i have defined new output type for the same as YEXC copying from JEXC.
While doing the transaction J1IV, i getting the output type YEXC, i m not able to print preview.
To proceed further i need some body guidence. Like where to assign the output type.
some body can give some inputs .
Thanks
sap-mmHi AP thanks for ur immediate response.
But i have done all the configuratuion in NACE only.
There in nace i m not able find out the mistake or missing configuration.
Can u expalin me step by step process end to end .
Thanks
sap-mm -
Automatic configuration of NEU output types for PO Vendor and its partners
Hi All,
I have requirement where I need need to send IDOC to PO Vendor and its partners at the same time when PO is created and changed. I need to get NEU output types for Vendor and Partners in messages automatically. Can any one guide me how to get this functionality. Please help me with step by step process. I am new to MM.
Thanks,
RaviTo attach output type to purchase order :
Go to NACE , Select Application EF ( Purchase Order) and Click on Condition Records button.
In a POP UP window double click NEU and then select the right Key Combination and maintain right transmission medium and output devide details. -
Hi Gurus
Can any one explain me to configure the output type for credit note
Explain with the steps
Thanks in advance
Regards
RameshHi
SPRO-IMG-Sales and Distribution-Basic Functions-Output Control-Output Determination-Output Determination Using the Condition Technique-->Maintain Output Determination for Billing Documents
-Maintain Condition Tables -Maintain Output Types -Maintain Access Sequences -Assign Output Types To Partner Functions -Maintain Output Determination Procedure
Hope this will work.
Hari
Edited by: hari mukku on Apr 15, 2009 4:27 PM -
Output type for movement type for IDOC creation
Dear Experts,
Can anybody tell how to create "Output type for different movement types for IDOC creation"
Specially for Movement type used for Inbound & outbound.Hi,
pls find below link's
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/abap/idoc%2bsteps
BAPI & IDOC material
IDOC Scenario Steps
http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
http://sap.niraj.tripod.com/id51.html
http://www.thespot4sap.com/Articles/SAP_ALE_IDOCS.asp
Changing fields in an Idoc segment
Regards
Raj. -
Output type for MB1B & MB1C-IDOC creation
Dear Expert,
I have to make output type for MB1B & MB1C transaction to create IDOC.Can anybody guide path to create Output type for same.Hi anupmore124,
You can create a new condition type, named as "ZWA1" and you can copied this from WA01.
Once this is copied, change the following data:
1. In partner functions, include:
Medium: 6 - EDI
Funciton: (blank)
You can delete the other partner function(s), if you want that this new output message type can be handled only by EDI (for IDOCs).
2. In the "General data" tab, you need to have selected only:
Access sequence: i.e. 0003 - Trans.Type/Print Vers./Indic.
Check box active "Access to conditions"
The rest of the check box needs to be inactive.
3. In the "Default" tab, define:
Dispatch time: 1 - Send with periodically scheduled job
Transmission medium: 6 - EDI
Then, save the data and now, the IDOC can be created.
Obviously, I presume that you made your customising before in WE20 with the correct IDOC message type, etc.
I hope this help.
Kind regards,
Sandra -
Configuration output type for VL02N - creating output type
Dear Sapguru,
I want to configure output type for VL02N transaction for IDOC creation,Here scenario is to connect SAP to third party system in IS retail.
VL02N- Output type configuration In only return delivery case.
Can anybody guide step by step cycle configuration for output type.Looking forward for your quick reply.
Note: Output type required for IDOC,to communicate with third party system,not for print function.
Thanks.Dear Anup,
If my understanding is correct,
This seems to be a outbound Idoc scenario where Idoc will be sent by SAP to third party for a return delivery notification.
Output type configuration steps are as follows :
1) Identify the standard output type (Application - V2, Transmission Medium - 6 ) for e.g. LAVA which is very close to your requirement.
2) Use this output type as a reference & create a copy output type of your own.
3) Use a suitable access sequence or create your own access sequence as per your requirement.
4) Assign access sequence to the output type.
5) Maintain output determination procedure (connect your output type to a suitable procedure )
6) Assign output determination procedure. (to your delivery document type)
7) Maintain required output condition records through T Code - VV21 against your newly created output type.
8) Set up the partner profiles as per your requirement (T code - WE20)
9) Check the reflection/ effects of your new output setup at the delivery document level (VL02N).
You may quickly access these settings through T codes - NACE.
Tables - TNAPR, NAST
Hope it will help you in the set up.
BR,
Anubhav -
Maintain Output type for invoice
Hi experts ,
I am using a bapi "BAPI_BILLINGDOC_CREATEMULTIPLE" for inter company billing and its working fine but it is not maintaining the output type for print this invoice from vf02/vf03 ...
Is there any BAPI to save the output type and device whenever invoice document is created ...
Thanks & Regards
Alok VishnoiHi Alok,
Output types need to maintained in the system through transaction NACE. Your program would be triggered by a concept called message control.
For maintaining your program and the corresponding smartform you need to know the correct application area for its maintenance in NACE. For this you need to take the help of functional guys to determine the output type that your program is triggereing and the necessary maintenance that needs to be done.
In order to understand the concept of message control please go through the link below:-
http://help.sap.com/saphelp_erp2005/helpdata/en/c8/1989fe43b111d1896f0000e8322d00/frameset.htm
Maybe you are looking for
-
When I open the Text Wrap window, none of the options appear. It's like they disappeared. Closed CS6 and re-started, still no luck. Any help will be appreciated...Thanks
-
Wifi driver not installing for windows7 64 Bit edition
HI i had replaced my operating system to windows ultimate Bit. My laptop model no: G580 (20157) after replacing my operating system all the drivers are installed successfully except network controller & USB 3.0 host controller. then after i tried to
-
syncing my iPad is taking more than 36 hours... how do I speed this up so I can update my iOS?
-
Illustrator cs4 start up error
Hi, i just got Adobe master collection cs4 i installed the application that i needed(Dreamwaver,fireworks,flash,illustrator,photoshop , indesign and AIR). The install run just fine but when i start Illustrator i got the following error: "The Localize
-
MX922 Scan from panel location.
Hello, I'm triyng to change the defauly folder location for documents scaned from the control panel of the printer. I first chose the computer to scan to, it scans and I hit okay then the pdf shows up in MyDocuments. If I use the scan utility it wil