Incorrect order for referential constraints in Export
When multiple tables are selected to export, the created file places the ALTER TABLE statements for the Referential Constraints immediately after the creation of the source table. Unfortunately, most of the time this will mean that the referenced table has not yet been created and the statement will fail.
All referential constraints should be created as a separate block of statements at the end of the file rather than table by table where errors will occur if the script is simply run.
I managed to resolve the issue by un-commenting below lines( they were commented in std though) -
XDECI FILL IT & XDECI FILL RT
Similar Messages
-
Tables ordered by referential constraint (integrity) order
Hi,
I have some 30 tables with SOME (not all) tables having referential integrity.
For example, column B in Table No.2 may refer column A of Table No.1 and so on.
Now I want to read some records from every table and re-insert those records into the same table (after changing some column values).
For this, I am planning to write a procedure which will get these 30 table names as input and do the above for each and every table (read and insert into the same table). The thing I want these 30 tables to be ordered according to the referential integrity. That is the parent tables to be present FIRST followed by child table. So that, when I follow this order when INSERTING records I won't get any referential integrity constraint errors.
In the example above, Table No.1 should come FIRST followed by Table 2 and so on.
Could anyone please throw some light on how to order the given tables in the order their referential integrity.
Thanks.Data dictionary view DBA/ALL/USER_CONSTRAINTS will show you constraints on your tables. Start with your tables without any FK constraints - these will be parent table(s). Then look for your tables dependent on your parent tables. These will be first child table(s). Repeat the process till you cover all your tables.
SY.
Edited by: Solomon Yakobson on Feb 20, 2012 6:21 AM -
Incorrect value for condition type P101 in Stock Transport order
Hello Friends,
We have a scenario where in transfering material from one plant to another using the STO way , the excise duty from the sending plant should be loadded on the inventory of the receiving plant.
In this scenario the excise duty X% is calculated on the condition type P101 (which is the standard price or the moving average price from the material master accounting view)
Giving below a sample cas e for the error occuring:-
- Suppose a material M1 has stock of 5,00,000 EA of total value 2,03,707.16 inr , thus the moving average price calculated by the system is 0.41 inr per unit.
- When i try to create the Stock transport order for this material the P101 condition value now appears as 2,05,000 inr for same 5,00,000 Quantity
If we check the difference between the material master value and condition value their is a difference of 1292.84
As mentioned the excise duty(X%) is now getting calcuated on 2,05,000 . When we do post goods issue against the delivery created for the stock transport order the inventory value posted is from the material master i.e 2,03,707.16 , but the excise value are calculated on 2,05,000 in the Purchase.
This difference in value between the condition P101 in PO and the actual inventory posting value is resulting in incorrect calcuation of the excise duty.
can some help me regarding this issue.
regards,Dear Gundam,
This might accured due to the rounding off problem, so please chek the rounding off condition type is available in the invoice or not.
If not plaese maintain the rounding off condition type sames as in the sales order then try.
I hope this will help you,
Regards,
Murali. -
Adding a Unique and Referential Constraint to XMLType of Purchase Table
SQL> desc XDBPO_TYPE
XDBPO_TYPE is NOT FINAL
Name Null? Type
SYS_XDBPD$ XDB.XDB$RAW_LIST_T
messageType VARCHAR2(4000)
MessageHeader XDBPO_MESSAGEHEADER_TYPE
Order XDBPO_ORDER_CLLT
SQL> desc XDBPO_MESSAGEHEADER_TYPE
XDBPO_MESSAGEHEADER_TYPE is NOT FINAL
Name Null? Type
SYS_XDBPD$ XDB.XDB$RAW_LIST_T
version VARCHAR2(50)
payloadId VARCHAR2(4000)
transmissionAgent VARCHAR2(4000)
timeStamp VARCHAR2(20)
senderName VARCHAR2(150)
senderComponent VARCHAR2(150)
documentReferenceId VARCHAR2(50)
documentReferenceIdType VARCHAR2(50)
dataCleansingDocumentId VARCHAR2(50)
singleTransaction VARCHAR2(4000)
Configuration XDBPO_CONFIGURATION_TYPE
HeaderIndexedAttribute XDBPO_HIATTRIBUTE_CLLT
I following the example in the demo in
Adding a Unique and Referential Constraint to Table Purchaseorder
which the constraint is added to the reference field.
but for my case, i need to add my constraint
to MessageHeader/@payloadId
how do i go about in adding the constraint?
tried to use this syntax logic but not successful:
alter table purchaseorder
add constraint REFERENCE_IS_UNIQUE
unique (xmldata."Reference")
Anyone have any idea? Mark?
Thanks.nevermind i solved the problem already
i will just post the solution incase someone else wants to add constraint to the sub xmltype object
alter table purchaseorder
add constraint REFERENCE_IS_UNIQUE
unique (xmldata."MessageHeader"."payloadId"); -
BAPIs to create sales orders for Returns and Debit Memo Request
Hi,
I have to create a sales order for document type Returns as well as a debit memo request.The BAPI 'BAPI_SALESORDER_CREATEFROMDAT2' is giving the following error message for Debit Memo Request document creation as well as for Returns.
761 Unpermitted combination of business object BUS2032 and sales doc. category L
I found BAPIs:
BAPI_CUSTOMERRETURN_CREATE for creating sales document of type ZDRE and SD document category H.
BAPI_DEBITREQUEST_PROXY_CREATE for creating sales document of type ZDDR and SD document category L.
please let me know if anybody have used them. If so what values need to be passed to I_UPLOAD_ID,I_DESTIN,I_SFA_REL parameters of BAPI_DEBITREQUEST_PROXY_CREATE. Are there any alternative solutions using the Salesorder bapi.
I have to create documents based on the flat file data no reference sales document numbers are available.
Appreciate your help..
Good Day
Regards
BhargaviLook at the code done by me
Program Name: *
SAP Name : ZAXXXXXX Version : *
Programmer : Chris Dong of ITDC *
Description : *
Includes : *
Function Modules: XX_XXXXXX *
Transactions : *
Programs : *
REPORT XXXXXXXX LINE-SIZE 80
LINE-COUNT 65
MESSAGE-ID ZA
NO STANDARD PAGE HEADING.
CLEAR l_order_partners.
l_order_partners-partn_role = 'AG'.
l_order_partners-partn_numb = '0001202491'.
APPEND l_order_partners TO li_order_partners.
CLEAR l_order_partners.
l_order_partners-partn_role = 'WE'.
l_order_partners-partn_numb = '0001202491'.
APPEND l_order_partners TO li_order_partners.
Sales document type
l_order_header_in-doc_type = 'ZDR'.
Sales organization
l_order_header_in-sales_org = '1000'.
Distribution channel
l_order_header_in-distr_chan = '01'.
Division
l_order_header_in-division = '04'.
REF DOCUMENT
l_order_header_in-REF_DOC = '9100000144'.
order reason
l_order_header_in-ord_reason = '925'.
item number
l_order_items_in-itm_number = '000001'.
material no
l_order_items_in-material = '000000000007000012'.
Qty
l_order_items_in-target_qty = '0000000000100.000'.
APPEND l_order_items_in TO li_order_items_in.
*BUS2094 Credit memo request " OSS NOTE 93091
*BUS2096 Debit memo request " OSS NOTE 93091
CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA'
EXPORTING
ORDER_HEADER_IN = l_order_header_in
BUSINESS_OBJECT = 'BUS2096'
WITHOUT_COMMIT = ' '
CONVERT_PARVW_AUART = ' '
IMPORTING
SALESDOCUMENT = l_vbeln
RETURN = li_return
TABLES
ORDER_ITEMS_IN = li_order_items_in
ORDER_PARTNERS = li_order_partners
Message was edited by:
Chris Dong
null -
How to get all production orders for a workcenter
Hello ...
I have a requirement to create a report of all production orders for a given workcenter. The user enters the workcenter (CRHD-ARBPL), plant (CRHD-WERKS) and a date range, and wants to see a list of orders (AUFNR) that fall within that date range along with some other data from AFKO and AFPO.
I can't figure out a good, consistent way to get from workcenter to production orders.
Any ideas?
Thanks!
SharonHi there check this program for relation between SO PO and Production order
REPORT z_so_info.
TABLES: vbak, vbap, afko, afpo.
*Field catalog
TYPE-POOLS: slis.
DATA: lv_repid TYPE sy-repid VALUE sy-repid,
xfield TYPE slis_t_fieldcat_alv,
afield TYPE slis_fieldcat_alv.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) text-002.
SELECT-OPTIONS: so_so FOR vbak-vbeln OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-003.
PARAMETERS:
p_kunnr LIKE vbak-kunnr, " sold-to
p_kunwe LIKE vbak-kunnr. " ship-to
SELECTION-SCREEN END OF BLOCK b2.
*Constants
CONSTANTS: c_zor TYPE vbak-auart VALUE 'ZOR',
c_we TYPE vbpa-parvw VALUE 'WE',
c_ag TYPE vbpa-parvw VALUE 'AG'.
* c_space TYPE space.
*Ranges
RANGES: ra_parvw FOR vbpa-parvw,
ra_kunnr FOR vbpa-kunnr.
*Tables
DATA: BEGIN OF gt_output OCCURS 0,
vbeln LIKE vbak-vbeln, " sales order number
posnr LIKE vbap-posnr, " SO item number
matnr LIKE vbap-matnr, " material number
sh LIKE vbpa-kunnr, " Ship-to
sp LIKE vbpa-kunnr, " Sold-to
lifnr LIKE ekko-lifnr, " Vendor
bstnk LIKE vbak-bstnk, " PO number
banfn LIKE vbep-banfn, " Purchase requi
po_st TYPE char30, " PO status text
pstyv TYPE vbap-pstyv, " Item catagory
aufnr LIKE afpo-aufnr, " Production Order
prd_stat TYPE string, " Prd order status
END OF gt_output.
DATA: wa_output LIKE gt_output.
FIELD-SYMBOLS: <fs_output> LIKE gt_output.
*Table for sales order and PO
TYPES : BEGIN OF gs_data,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
pstyv TYPE vbap-pstyv,
matnr TYPE vbap-matnr,
END OF gs_data.
DATA: gt_data TYPE STANDARD TABLE OF gs_data,
wa_data TYPE gs_data.
*Table for Production Orders
TYPES: BEGIN OF gs_prd,
aufnr TYPE afpo-aufnr,
posnr TYPE afpo-posnr,
kdauf TYPE afpo-kdauf,
kdpos TYPE afpo-kdpos,
wepos TYPE afpo-wepos, "Goods Receipt Indicator
elikz TYPE afpo-elikz, "Delivery Completed Indicator
objnr TYPE aufk-objnr, "Object number
* getri TYPE afko-getri, "Confirmed Order Finish Date
* gltri TYPE afko-gltri, "Actual finish date
END OF gs_prd.
DATA: gt_prd TYPE STANDARD TABLE OF gs_prd,
wa_prd TYPE gs_prd.
*Table for partner data
TYPES: BEGIN OF gs_partner,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
parvw TYPE vbpa-parvw,
kunnr TYPE vbpa-kunnr,
END OF gs_partner.
DATA: gt_partner TYPE STANDARD TABLE OF gs_partner,
wa_partner TYPE gs_partner.
TYPES: BEGIN OF gs_po,
ebeln TYPE ekkn-ebeln,
ebelp TYPE ekkn-ebelp,
vbeln TYPE ekkn-vbeln,
vbelp TYPE ekkn-vbelp,
END OF gs_po.
DATA: gt_po TYPE STANDARD TABLE OF gs_po,
wa_po TYPE gs_po.
TYPES: BEGIN OF gs_preq,
vbeln TYPE vbep-vbeln,
posnr TYPE vbep-posnr,
banfn TYPE vbep-banfn,
END OF gs_preq.
DATA: gt_preq TYPE STANDARD TABLE OF gs_preq,
wa_preq TYPE gs_preq.
TYPES: BEGIN OF gs_po_stat,
ebeln TYPE ekko-ebeln,
procstat TYPE ekko-procstat,
lifnr TYPE ekko-lifnr,
END OF gs_po_stat.
DATA: gt_po_stat TYPE STANDARD TABLE OF gs_po_stat,
wa_po_stat TYPE gs_po_stat.
*Field symbols
FIELD-SYMBOLS: <fs> TYPE tj02t-txt04,
<fs_temp> TYPE tj02t-txt04,
<fs_stat> TYPE char30.
START-OF-SELECTION.
PERFORM fr_build_range.
PERFORM fr_get_data.
PERFORM fr_build_fc.
PERFORM fr_output.
*& Form fr_get_data
* text
* --> p1 text
* <-- p2 text
FORM fr_get_data.
*Get SO
SELECT a~vbeln a~posnr a~pstyv a~matnr
FROM vbap AS a
JOIN vbak AS b
ON a~vbeln = b~vbeln
JOIN vbpa AS c
ON b~vbeln = c~vbeln
INTO TABLE gt_data
WHERE b~vbeln IN so_so
AND b~auart EQ c_zor "Only Sales Orders
AND c~kunnr IN ra_kunnr. "from selection screen
DELETE ADJACENT DUPLICATES FROM gt_data COMPARING vbeln posnr.
*get data of the production order
IF NOT gt_data[] IS INITIAL.
SELECT a~aufnr a~posnr a~kdauf a~kdpos a~wepos a~elikz
b~objnr
FROM afpo AS a
JOIN aufk AS b
ON a~aufnr = b~aufnr
INTO TABLE gt_prd
FOR ALL ENTRIES IN gt_data
WHERE a~kdauf EQ gt_data-vbeln
AND a~kdpos EQ gt_data-posnr.
ENDIF.
*Get partner data
IF NOT gt_data[] IS INITIAL.
SELECT vbeln posnr parvw kunnr
FROM vbpa
INTO TABLE gt_partner
FOR ALL ENTRIES IN gt_data
WHERE vbeln EQ gt_data-vbeln.
ENDIF.
*Get Purchase Order
IF NOT gt_data[] IS INITIAL.
SELECT ebeln ebelp vbeln vbelp
FROM ekkn
INTO TABLE gt_po
FOR ALL ENTRIES IN gt_data
WHERE vbeln EQ gt_data-vbeln
AND vbelp EQ gt_data-posnr.
SELECT vbeln posnr banfn
FROM vbep
INTO TABLE gt_preq
FOR ALL ENTRIES IN gt_data
WHERE vbeln EQ gt_data-vbeln
AND posnr EQ gt_data-posnr.
ENDIF.
IF NOT gt_po[] IS INITIAL.
SELECT a~ebeln a~procstat a~lifnr
FROM ekko AS a
JOIN ekpo AS b
ON a~ebeln = b~ebeln
INTO TABLE gt_po_stat
FOR ALL ENTRIES IN gt_po
WHERE b~ebeln EQ gt_po-ebeln
AND b~ebelp EQ gt_po-ebelp.
ENDIF.
*Move data to output table
LOOP AT gt_data INTO wa_data.
wa_output-vbeln = wa_data-vbeln.
wa_output-posnr = wa_data-posnr.
wa_output-pstyv = wa_data-pstyv.
wa_output-matnr = wa_data-matnr.
READ TABLE gt_po INTO wa_po WITH KEY vbeln = wa_data-vbeln
vbelp = wa_data-posnr.
IF sy-subrc EQ 0.
wa_output-bstnk = wa_po-ebeln.
READ TABLE gt_po_stat INTO wa_po_stat WITH KEY ebeln = wa_po-ebeln.
IF sy-subrc EQ 0.
wa_output-lifnr = wa_po_stat-lifnr.
CASE wa_po_stat-procstat.
WHEN '01'.
wa_output-po_st = 'Version in process'.
WHEN '02'.
wa_output-po_st = 'Active'.
WHEN '03'.
wa_output-po_st = 'In release'.
WHEN '04'.
wa_output-po_st = 'Partially released'.
WHEN '05'.
wa_output-po_st = 'Released Completely'.
WHEN '08'.
wa_output-po_st = 'Rejected'.
ENDCASE.
ENDIF. "inner read subrc
ENDIF. "outer read subrc
READ TABLE gt_preq INTO wa_preq WITH KEY vbeln = wa_data-vbeln
posnr = wa_data-posnr.
IF sy-subrc EQ 0.
wa_output-banfn = wa_preq-banfn.
ENDIF.
READ TABLE gt_prd INTO wa_prd WITH KEY kdauf = wa_data-vbeln
kdpos = wa_data-posnr.
IF sy-subrc EQ 0.
wa_output-aufnr = wa_prd-aufnr.
*get the purchase requisition for production order as well
SELECT SINGLE banfn
FROM ebkn
INTO wa_output-banfn
WHERE aufnr EQ wa_prd-aufnr.
*Get the status of the production order
PERFORM fr_get_prd_stat USING wa_prd-objnr
CHANGING wa_output-prd_stat.
ENDIF. " sy-subrc
READ TABLE gt_partner INTO wa_partner WITH KEY vbeln = wa_data-vbeln
parvw = c_we.
IF sy-subrc EQ 0.
wa_output-sh = wa_partner-kunnr.
ENDIF.
READ TABLE gt_partner INTO wa_partner WITH KEY vbeln = wa_data-vbeln
parvw = c_ag.
IF sy-subrc EQ 0.
wa_output-sp = wa_partner-kunnr.
ENDIF.
APPEND wa_output TO gt_output.
CLEAR: wa_data, wa_prd,wa_partner,wa_output.
ENDLOOP.
ENDFORM. " fr_get_data
*& Form fr_build_range
* text
* --> p1 text
* <-- p2 text
FORM fr_build_range .
*Range for partner function
MOVE 'I' TO ra_parvw-sign.
MOVE 'EQ' TO ra_parvw-option.
MOVE 'SH' TO ra_parvw-low. " we
APPEND ra_parvw.
CLEAR ra_parvw.
MOVE 'I' TO ra_parvw-sign.
MOVE 'EQ' TO ra_parvw-option.
MOVE 'SP' TO ra_parvw-low. " ag
APPEND ra_parvw.
CLEAR ra_parvw.
*Range for ship-to and sold-to
MOVE 'I' TO ra_kunnr-sign.
MOVE 'EQ' TO ra_kunnr-option.
MOVE p_kunnr TO ra_kunnr-low.
APPEND ra_kunnr.
CLEAR ra_kunnr.
MOVE 'I' TO ra_kunnr-sign.
MOVE 'EQ' TO ra_kunnr-option.
MOVE p_kunwe TO ra_kunnr-low.
APPEND ra_kunnr.
CLEAR ra_kunnr.
ENDFORM. " fr_build_range
*& Form fr_build_fc
* text
* --> p1 text
* <-- p2 text
FORM fr_build_fc .
* sales order number
afield-fieldname = 'VBELN'.
afield-seltext_s = 'Sales #'.
afield-ref_tabname = 'VBAK'.
APPEND afield TO xfield. CLEAR afield.
* sales ITEM number
afield-fieldname = 'POSNR'.
afield-seltext_s = 'Item #'.
afield-ref_tabname = 'VBAP'.
APPEND afield TO xfield. CLEAR afield.
* Material Number
afield-fieldname = 'MATNR'.
afield-seltext_s = 'Material #'.
afield-ref_tabname = 'VBAP'.
afield-outputlen = 10.
APPEND afield TO xfield. CLEAR afield.
*Vendor Number
afield-fieldname = 'LIFNR'.
afield-seltext_s = 'Vendor Num.'.
afield-ref_tabname = 'EKKO'.
APPEND afield TO xfield. CLEAR afield.
* ship-to-party
afield-fieldname = 'SH'.
afield-seltext_s = 'Ship-to'.
afield-ref_tabname = 'VBPA'.
APPEND afield TO xfield. CLEAR afield.
* sold-to-party
afield-fieldname = 'SP'.
afield-seltext_s = 'Sold-to'.
afield-ref_tabname = 'VBPA'.
APPEND afield TO xfield. CLEAR afield.
*PO number
afield-fieldname = 'BSTNK'.
afield-seltext_s = 'PO NUM'.
afield-ref_tabname = 'EKKO'.
APPEND afield TO xfield. CLEAR afield.
*PO status
* afield-fieldname = 'PO_STAT'.
* afield-seltext_s = 'Step'.
* afield-ref_tabname = 'zbacklog_v2'.
* APPEND afield TO xfield. CLEAR afield.
*PO step status
afield-fieldname = 'PO_ST'.
afield-seltext_s = 'PO.Status'.
afield-ref_tabname = 'zbacklog_v2'.
APPEND afield TO xfield. CLEAR afield.
*Purchase requisition
afield-fieldname = 'BANFN'.
afield-seltext_s = 'Pur. Req.'.
afield-ref_tabname = 'VBEP'.
APPEND afield TO xfield. CLEAR afield.
*Item catagory
afield-fieldname = 'PSTYV'.
afield-seltext_s = 'Itm. Catg'.
afield-ref_tabname = 'VBAP'.
APPEND afield TO xfield. CLEAR afield.
*Prodcution Order number
afield-fieldname = 'AUFNR'.
afield-seltext_m = 'Prod.Order'.
afield-ref_tabname = 'AFKO'.
APPEND afield TO xfield. CLEAR afield.
*PRODCUTION status
afield-fieldname = 'PRD_STAT'.
afield-seltext_s = 'Prd. Step'.
afield-ref_tabname = 'zbacklog_v2'.
afield-outputlen = 20.
APPEND afield TO xfield. CLEAR afield.
*PRODUCTION step status
* afield-fieldname = 'PRD_ST'.
* afield-seltext_s = 'Prd. Status'.
* afield-ref_tabname = 'zbacklog_v2'.
* APPEND afield TO xfield. CLEAR afield.
ENDFORM. " fr_build_fc
*& Form fr_output
* text
* --> p1 text
* <-- p2 text
FORM fr_output .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
it_fieldcat = xfield[]
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = gt_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " fr_output
*& Form fr_get_prd_stat
* text
* -->P_WA_PRD_OBJNR text
FORM fr_get_prd_stat USING p_objnr CHANGING p_prd_stat.
DATA: lt_status TYPE STANDARD TABLE OF jstat,
wa_status TYPE jstat,
lv_status TYPE tj02t-txt04,
lv_temp2 TYPE char5,
lv_buff TYPE string.
CALL FUNCTION 'STATUS_READ'
EXPORTING
client = sy-mandt
objnr = p_objnr
only_active = 'X'
TABLES
status = lt_status
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
LOOP AT lt_status INTO wa_status.
IF wa_status-stat(1) EQ 'I'.
SELECT txt04 FROM tj02t
INTO lv_status
WHERE istat EQ wa_status-stat
AND spras EQ 'E'.
ENDSELECT.
lv_temp2 = lv_status.
CONCATENATE lv_temp2 p_prd_stat INTO p_prd_stat
SEPARATED BY ','.
ENDIF.
CLEAR: wa_status, lv_status, lv_temp2.
ENDLOOP.
lv_buff = p_prd_stat.
*Status of Production Order
IF lv_buff CS 'CRTD'.
p_prd_stat = 'Not Active'.
ENDIF.
IF lv_buff CS 'REL'.
IF lv_buff CS 'GMPS'.
p_prd_stat = 'Printed In Prod'.
ELSE.
p_prd_stat = 'Printed'.
ENDIF.
ENDIF.
IF lv_buff CS 'TECO'.
p_prd_stat = 'Technically Compt.'.
ENDIF.
ENDFORM. " fr_get_prd_stat -
Automatic form generation on creation transfer order for delivery note?
Hi,
I have to create a form that should automatically be generated on the creation of a transfer order for delivery note. How do I trigger this automatic creation of the form? And how can the transfer order number be passed to my print program?
Thx!hi christophe,
To issue the delivery output, go to transaction VL02N.
Then go to EXTRAS-> OUTPUT->HEADER->EDIT
In the Message output screen enter the relevant output type created for the delivery.
Choose the relevant medium of output.
Choose Simple Mail, in this case the field NAST-NACHA will be having a value of 7.
Specify the Partner Function; in this case it is MA -> Mail partner address
Select the Communication Method for the output type maintained.
This will take you to the SAPOFFICE screen.
Enter there the E-Mail Address to which you want to send the delivery document as PDF.
A mail will be sent to the e-mail address of the E-Mail Address specified, with the delivery output form as a PDF attachment.
hope it will help u ..
*& Report ZZ_TEST *
REPORT zz_test .
INCLUDE zz_test_top.
INCLUDE zz_test01.
FORM entry *
--> RETURN_CODE *
--> US_SCREEN *
FORM entry USING return_code us_screen.
CLEAR retcode.
xscreen = us_screen.
PERFORM processing USING us_screen.
CASE retcode.
WHEN 0.
return_code = 0.
WHEN 3.
return_code = 3.
WHEN OTHERS.
return_code = 1.
ENDCASE.
ENDFORM. "entry
*& Include ZZ_TEST_TOP *
TABLES : nast,
tnapr.
TYPES : BEGIN OF t_SOUDNAMEI1.
INCLUDE STRUCTURE SOUDNAMEI1.
TYPES : END OF t_SOUDNAMEI1.
Internal Table declarations
DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_tline TYPE TABLE OF tline WITH HEADER LINE,
i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
*Objects to send mail.
i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
i_lips LIKE lips OCCURS 0 WITH HEADER LINE,
i_SOUDNAMEI1 TYPE STANDARD TABLE OF t_SOUDNAMEI1.
Work Area declarations
DATA:w_objhead TYPE soli_tab,
wa_control_parameters TYPE ssfctrlop,
wa_output_options TYPE ssfcompop,
w_return TYPE ssfcrescl,
w_doc_chng TYPE sodocchgi1,
w_data TYPE sodocchgi1,
w_buffer TYPE string,"To convert from 132 to 255
wa_SOUDNAMEI1 TYPE t_SOUDNAMEI1,
Variables declarations
w_form_name TYPE rs38l_fnam,
w_len_in LIKE sood-objlen,
w_len_out LIKE sood-objlen,
w_len_outn TYPE i,
w_lines_txt TYPE i,
w_lines_bin TYPE i,
retcode TYPE sy-subrc,
xscreen TYPE c,
w_spld TYPE usr01-spld,
w_receiver TYPE SOXNA-FULLNAME,
w_OBJ_RECORD TYPE OBJ_RECORD,
w_user type sy-uname,
w_email TYPE ad_smtpadr.
Constants Declaration
CONSTANTS : c_x TYPE c VALUE 'X',
c_atrate(1) TYPE c VALUE '@'.
*& Include ZZ_TEST01 *
FORM PROCESSING *
FORM processing USING proc_screen.
SELECT * FROM lips
INTO TABLE i_lips
WHERE vbeln = nast-objky.
Call Function module to Getfunction Module name Generated by Smartform
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = tnapr-sform
IMPORTING
fm_name = w_form_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
retcode = sy-subrc.
ENDIF.
CLEAR : wa_control_parameters,
wa_output_options.
CASE nast-nacha.
WHEN '1'.
wa_control_parameters-device = 'PRINTER'.
WHEN '7'.
DATA: l_email TYPE ad_smtpadr.
wa_output_options-tdnoprev = c_x.
wa_control_parameters-getotf = c_x.
To get the default output device maintained in the
User profile
SELECT SINGLE spld FROM usr01
INTO w_spld
WHERE bname EQ nast-usnam.
IF sy-subrc EQ 0.
MOVE w_spld TO wa_output_options-tddest .
ENDIF.
wa_output_options-tdnoprev = c_x.
wa_control_parameters-getotf = c_x.
To get the email address maintained for the particular output
CALL FUNCTION 'NAST_GET_MESSAGE_OBJECT_RECV'
EXPORTING
pi_objkey = nast-tdname
IMPORTING
pe_addr = w_receiver
CHANGING
pc_objhandle = w_obj_record
EXCEPTIONS
maildata_not_readable = 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.
IF w_receiver NA c_atrate.
To retrieve the E-Mail Id in case we get the User name from NAST
CLEAR wa_soudnamei1.
REFRESH i_soudnamei1.
MOVE w_receiver TO wa_soudnamei1-fullname.
To get the user name
CALL FUNCTION 'SO_NAME_CONVERT_API1'
EXPORTING
name = wa_soudnamei1
TABLES
names = i_soudnamei1
EXCEPTIONS
user_not_exist = 1
parameter_error = 2
x_error = 3
OTHERS = 4.
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_soudnamei1.
READ TABLE i_soudnamei1 INTO wa_soudnamei1 INDEX 1.
MOVE wa_soudnamei1-sapname TO w_user.
To get the e-mail Id maintained in the user profile
CALL FUNCTION 'FTR_CORR_CHECK_EMAIL_SAP_USER'
EXPORTING
i_user = w_user
IMPORTING
e_email_address = l_email
EXCEPTIONS
mail_address = 1
determination_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
MOVE l_email TO w_receiver.
ENDIF.
MOVE w_receiver TO w_email.
ENDCASE.
wa_control_parameters-no_dialog = c_x.
wa_control_parameters-langu = nast-spras .
wa_output_options-tdteleland = nast-tland.
wa_output_options-tdtelenum = nast-telfx .
wa_output_options-tdsenddate = nast-erdat .
wa_output_options-tdsendtime = nast-eruhr .
wa_output_options-tddataset = nast-dsnam .
wa_output_options-tdsuffix1 = nast-dsuf1 .
wa_output_options-tdsuffix2 = nast-dsuf2 .
wa_output_options-tdimmed = nast-dimme .
wa_output_options-tddelete = nast-delet .
wa_output_options-tdautority = nast-tdautority.
wa_output_options-tdcovtitle = nast-tdcovtitle .
wa_output_options-tdcover = nast-tdocover .
wa_output_options-tdreceiver = nast-tdreceiver.
wa_output_options-tddivision = nast-tddivision.
wa_output_options-tdcopies = nast-anzal .
wa_output_options-tdnewid = c_x.
wa_output_options-tdarmod = nast-tdarmod.
wa_output_options-tdnoarmch = c_x.
CALL FUNCTION w_form_name
EXPORTING
archive_index = toa_dara
archive_parameters = arc_params
control_parameters = wa_control_parameters
output_options = wa_output_options
user_settings = ' '
IMPORTING
job_output_info = w_return
TABLES
it_lips = i_lips
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF nast-nacha EQ 7 AND sy-subrc EQ 0.
i_otf[] = w_return-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = w_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Convert PDF from 132 to 255.
LOOP AT i_tline.
Replacing space by ~
TRANSLATE i_tline USING ' ~'.
CONCATENATE w_buffer i_tline INTO w_buffer.
ENDLOOP.
Replacing ~ by space
TRANSLATE w_buffer USING '~ '.
DO.
i_record = w_buffer.
Appending 255 characters as a record
APPEND i_record.
SHIFT w_buffer LEFT BY 255 PLACES.
IF w_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
REFRESH: i_reclist,
i_objtxt,
i_objbin,
i_objpack.
CLEAR w_objhead.
Object with PDF.
i_objbin[] = i_record[].
DESCRIBE TABLE i_objbin LINES w_lines_bin.
Document information.
w_doc_chng-obj_name = 'Smartform'.
w_doc_chng-expiry_dat = sy-datum + 10.
CONCATENATE 'Delivery' 'Note'
INTO w_doc_chng-obj_descr.
*w_doc_chng-obj_descr = 'Smart form output'.
w_doc_chng-sensitivty = 'F'. "Functional object
w_doc_chng-doc_size = w_lines_txt * 255.
Pack to main body as RAW.
Obj. to be transported not in binary form
CLEAR i_objpack-transf_bin.
Start line of object header in transport packet
i_objpack-head_start = 1.
Number of lines of an object header in object packet
i_objpack-head_num = 0.
Start line of object contents in an object packet
i_objpack-body_start = 1.
Number of lines of the object contents in an object packet
i_objpack-body_num = w_lines_txt.
Code for document class
i_objpack-doc_type = 'RAW'.
APPEND i_objpack.
Packing as PDF.
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 1.
i_objpack-body_start = 1.
i_objpack-body_num = w_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'Smartform'.
CONCATENATE 'Delivery' 'Note' '.pdf'
INTO i_objpack-obj_descr.
i_objpack-doc_size = w_lines_bin * 255.
APPEND i_objpack.
Document information.
CLEAR i_reclist.
e-mail receivers.
i_reclist-receiver = w_email.
i_reclist-express = 'X'.
i_reclist-rec_type = 'U'. "Internet address
APPEND i_reclist.
sending mail.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = w_doc_chng
put_in_outbox = 'X'
TABLES
packing_list = i_objpack
object_header = w_objhead
contents_bin = i_objbin
contents_txt = i_objtxt
receivers = i_reclist
EXCEPTIONS
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 <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. "processing -
How download data of me2s 'po order for external services: in cxcel'
THIS IS sandipan. I am very new in this field . My requirement is when i am going to me2s t.code. then i am giving purchasing group , plant , Service Number as input. then it showing purchase doc . , item , porg , matl... , plant , crcy . It's ok. but after that when i am clicking purchase order it displays Purchase order for external services : overview screen in a hiarirchical view and no download option is available here. I need to export the data of that screen to a excel sheet . how Is it possible ? please help me ...
Moderator message: please do not open multiple threads for the same or similar issue.
Edited by: Thomas Zloch on Jan 7, 2012 10:22 PMHi
T165A is used for 'Services Pricing'.
Please note that for Services PO, you will have two pricing schema.
1) At PO-Item Level : RM0000 (or whatever you define in schema determination in Purchasing ->Conditions IMG and assign in your vendor master)
2) At service line level : Based on settings in T165A.
If you check in Services level conditions screen and click on Analysis, you will find that ZS0001 is triggered.
Best regards
Ramki -
Foreign trade data - Blocking orders for embargo countries
I have now seen this process in my test system. I can still enter an order for a country who is marked for embargo and it saves. It will also give me a confirmed date for the goods and the requirements do still show up on MD04.
It does show up on the blocked document list in FTD as blocked because of an embargo but this doesn't make sense to me.
If there is an embargo, why would SAP promise the goods?? It seems like it should not confirm the order or transfer the requirements to the plant.
Is this how other people are seeing the Embargo countries process work or am I still missing something in configuration??
Any and all help is greatly appreciated!!
DebbieI believe it does allow you to create order. Then the processing (delivery/shipment) is stopped until you release(approve) this particular order by entering appropriate license in export control.
-
Songs in Wrong Order for iTunes 7
I have my music sorted by album, and when I upgraded to the new version of iTunes, about ten or so albums are randomly in the wrong order. I have the track numbers listed next to each song, and they are correct, but for some reason they are ordered, for example, 3, 4, 5, 2, 7, 1, 6. When I sort by artist, they are in the correct album order again. I don't want these albums to be in the correct order only if I sort by artist or if they are in a playlist, I want to keep sorting by album. Also, going to Get Info doesn't help since the correct track numbers are listed, but they are still incorrectly ordered. Can anyone help?
Hi Missara!
Everytime I got an album sorting issue like yours, it had something to do with the information tag. In the new iTunes version, the album grouping have been modified.
Select a whole album and do a get info on the songs. There you have to make sure that ALL album related fields are identical; i.e. Artist (if not, write an artist name in the Album Artist field), Album, Year, Disc Numbre from and Of, Track Number of.
For all these fields, click the check box next to them if the field is blank. Sometimes if can even be a white space messing up.
This should correct your situation. -
Some albums on my iPod have their songs in incorrect order
I guess I’m just old school. I like to listen to my music in the order that it appears on the album. Almost all of the albums have the songs in the correct order, but few do not. In particular, Today was listening to American Idiot (Green Day), what should be the third song has been placed way at the 8th position. In fact the song order for this album as played on my iPod is 1, 2, 4, 5, 7, 9, 11, 3, 6, 8, 10,12, 13.
I have verified that I have the latest iTunes and iPod firmware. I have my iTunes set to keep my music library in sync on my iPod (“Manually Manage music and videos is NOT checked) .
Here is a partial list of things I have already tried
• I have made sure that the music is sorted first by Artist, then by Album, then by Track number in iTunes.
• I have verified that the order is correct in my iTunes music library and the music library’s shadow in the iPod within iTunes
• I have done the 5 R’s
• I have switched to Manually Manage, deleted the offending albums, synced, re-added the albums, WATCHED THE SONGS LOAD IN THE CORRECT ORDER, just to find that they are still listed in an incorrect order when I look at them in my iPod.
Someone please help me and tell me how to fix this.
PC Windows XP ProThe Cloud by the song indicates that is is an iTunes purchase but it is not downloaded on the iPod. If you only want download iTunes purchases to show in the Music app go to Settings>itunes and pp Store and turn off Show aLL.
-
I created an album in iPhoto 11 and I have placed photos in a certain order for her graduation party slideshow. I want to place that album or photos on a thumbdrive, but when I do I lose the order I placed them in the folder. renamed the photos starting with 1 and ending 262. thinking that would save the photos in order. Each time I try to export them that are placed in original folder names and descriptions need help.
This is a two part process. First we title the photos, then we export them, using the title as filename.
To title them
Once you have then in the order you want select them all and go
Photos -> Batch Change. Select set 'Title' to 'Text'
Choose a Title -> Graduation 2013 or whatever, then check the box at 'Append number to each photo.
Now, in the Album all your photos are named... Graduation 001, 002, 003 etc
Next Export them:
File -> Export, and in the Name option, choose 'Title as Filename' and complete the export.
Regards
TD -
JhsError Messages for Database constraint
Hello JhaedStart Team
I want to display mycustome entity alias name in place of entity name in Jhs Error messages for Database constraint , as you know we can customize this error message by replacing ConstraintName as a key in our registered customMessage Bundle (according to 25.8.3 sction of ADFdevelopers guide) .
In order to do that I should disable JHS NLS generation for JHS because it's custome messages prevent my message to be display from my customMessage Bundle , So I have tried to delete constraint key (eg CASCADING_DELETE_VIOLATION) from GeneratorText.properties but I see that the CASCADING_DELETE_VIOLATION message still generated in my project JHS message bundle.
Please help me to fix the problemJHeadstart also supports customizing database constraint messages, as explained in section 11.4 of the JHeadstart 10.1.3.2 Developer's Guide. So you don't need to use the technique of section 25.8.3 of the ADF Developer's Guide, you can customize the message directly in the JHeadstart resource bundle.
Hope this helps,
Sandra Muller
JHeadstart Team
Oracle Consulting -
BAPI function module to get process orders for certain material
Dear experts ,
kindly , I need my vb application to get all CRD , but not DLV Process orders for Material X.
Into SAP , I use the COIO , then set material to X , then display flag CRTD included , and Exclude DLV.
Question now , What is the function module that does this. what is the table name , and how to set search parameters.
my code will be like this
theFunc = functionCtrl.Add("BAPI_PO_GETDETAIL") ' get po data
theFunc.exports("purchaseorder") = t.Text
returnFunc = theFunc.call
returnParam = theFunc.imports("po_header")
retTab = theFunc.tables("po_items")
For Each rr In retTab.Rows
tt1.Text &= (rr("MATERIAL")) & vbTab
next
Thanks
WaleedHi,
Check if the below helps:
1. BAPI_SALESORDER_GETLIST for VA05
2. BAPI_QUOTATION_GETDETAILBOS for VA25.
Regards,
Vivek -
Random order for slide show?
I have a lot of pictures in an album that I would like put in random order for a slide show. I want to burn that to a dvd to play at our day care centers (pics of the kids throughout the summer). is there any way to do this other than dragging and dropping the pictures manually? that takes a lot of time.
OK. Well here's a helpful answer. Someone's already written a quick Applescript for adding random numbers to every file in a folder. I added a little bit to the beginning and the end to let you be able to just drag and drop the folder onto the file, but give full credit to the poster
Steps:
(1) Open the Applescript Editor:
Finder->Applications->Apple Script->Script Editor.app
(2) In a new Script copy and paste the following text:
--start copying
on open the_Droppings
tell application "Finder"
set separator to ("_") as text
set source to the_Droppings as alias
set destination to make new folder at source with properties {name:"Shuffled"}
set shuffle_pool to duplicate files of source to destination
set shuffle_count to count shuffle_pool
set duplicates to {}
repeat with shuffle_file in shuffle_pool
repeat
set an_item to random number from 1 to shuffle_count
if an_item is not in duplicates then exit repeat
end repeat
shuffle_file as alias
set name of result to an_item & separator & name of result as string
set end of duplicates to an_item
end repeat
end tell
end open
-- stop pasting here
(3) File->Save As
(4) Type in a name for the file and IMPORTANT save it as an application.
(5) Place all the images that you want to randomize into any folder. (In iPhoto6: File->Export from an album or; in iPhoto5: Share->Export)
(6) Drag the folder with your images onto the little application that you saved from the Script Editor
(7) The Script will create a new folder inside whatever folder you dropped on it called "Shuffled".
(8) Now if you do an Edit->Add Slideshow in iDVD you can just drag the contents of the Shuffled folder to iDVD and you're done! It'll make a DVD in seconds! Now if only you could set the time to more than 10 seconds!
ALL CREDIT TO: http://forums.macosxhints.com/showthread.php?t=46359
and
http://macscripter.net/articles/4670_10_0C/
Maybe you are looking for
-
Radio Button or Check Box Group
Hi, I built a form based on a query. There is a flag column, only one of queried records is allowed to be "Y" in this column. The rests must be null. Most ideal thing is to have a radio button group, only one of them can be selected. Another way is t
-
What is the best way to protect my new Macbook Pro?
I finally have a shinny new 13" Macbook Pro Rentina and I'm wondering what is the best way to protect it? I am considering either a hard case or a sleeve but which one is the best? This thing is worth more than my car and I can't afford for anything
-
Copy and Paste is still broken in iOS 8.1!!
This is really ******* me off. I know there were a lot of fundamental changes to iOS 8, so I can cut Apple some slack, but this is ridiculous! It's so frustrating to copy and then paste and get OLD copy results. It's worst when dealing with long comp
-
Could some pls help me with this?? I have windows 7 with Mobile Broadband internet. Alot of the recordings/albums are incomplete after down loading them. Any assistance would be appreciated. Thanx
-
JMS error with SQL Server 2005 SP1
Hi all, I have set up LC 8.0 with a SQL Server and the server seems to be running, however I get some errors in the log that I don't like. Can you help me fix this problem? 2008-07-23 12:06:49,197 INFO [org.jboss.ejb.plugins.jms.JMSContainerInvoker]