Adding vendor batch code to gr/gi slip
Hi
Im doing a script for good receipt slip. the print program is SAPM07DR and script is WA_SCHEINVRS1. output type is 'WE-01'.
i have copied these programs to Z programs .
the problem is i have to capture extra fields listed below with the table
1. MCHA-LICHA
can anybody tell me how to go abt this , what changes should i do in print program as well as script program.
waiting for reply
Hello
U heard correctly OMJX is for MIGO, here against the gield GR/GI slip u have three options for selection INPUT / REQUIRED / DISPLAY / HIDE...u can select according to the requirement e.g ur requirement is to make it mandatory then select Radio button on REQUIRED, iGR / GI Slip field will become mandatory.
Regards
Vineet
Similar Messages
-
Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are
Vendor batch No. : Transaction ZJPMPU322
(Background)
There are "vendor batch" and "batch" fields in Goods-in-order and Goods-in-plan lists (transaction ZJPMPU322). Values for these fields are retrieved from inbound delivery document (transaction VL33N). After core 7.0 upgrade, "vendor batch" is not copied from "batch" in inbound delivery document any more so that nothing appears in the vendor batch field in the lists.
(Change request)
Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are retrieved from "batch" in inbound delivery document ONLY IF "vendor batch" is blank in the inbound delivery document.
(Current design)
Batch is retrieved from LIPS-CHARG
Vendor batch is retrieved from LIPS-LICHN
(If there is no record in LIPS, blank will be printed out for both fields)
(After change)
Batch is retrieved from LIPS-CHARG
Vendor batch is retrieved from LIPS-LICHN only if LIPS-LICHN is not blank.
If LIPS-LICHN is blank, vendor batch is retrieved from LIPS-CHARG.
(If there is no record in LIPS, blank will be printed out for both fields. If both LIPS-CHARG and LIPS-LICHN are blank, blank will be printed out for both fields),
Following is the program:
REPORT zjpmrpu322 MESSAGE-ID zjpm001
NO STANDARD PAGE HEADING
LINE-COUNT 50
LINE-SIZE 255.
*& Development ID: PU_DD_322_LJP *
*& Report : ZJPMRPU322 *
*& The Purpose of this program is to print the Goods-in-order list *
*& and the Goods in plan list for raw materials, materials purchase *
*& etc at the Sasayama plant, Japan. *
*& Change Log: *
*& Init Who Date Text *
*& PV P V R S Varma 07-May-2003 Initial Version *
*& DU D.Usui 2004/02/26 CR No. 1432 *
*& DU D.Usui 2004/03/08 CR No. 1447 *
*& DU D.Usui 2004/05/06 CR No. 1591 *
Constants
CONSTANTS:
c_werks LIKE ekpo-werks VALUE 'JP01', "Plant code - Sasayama plant
c_id LIKE thead-tdid VALUE 'F02', "Text ID for Info record
c_object LIKE thead-tdobject VALUE 'EKPO',"Object of text for info rec
*c_zzjp_r1 LIKE marc-zzjp_re1 VALUE 'GMP', "Goods in plan- Domestic
*c_zzjp_r2 LIKE marc-zzjp_re1 VALUE 'GMPI', "Import sales order document
c_plus TYPE c VALUE '', "Holding '' sign
c_spras LIKE makt-spras VALUE 'J', "Language key Japan
*c_device(7) type c value 'PRINTER', "Device type
c_form(16) TYPE c VALUE 'ZJPMPU305', "Form name
c_ele_gmp(4) TYPE c VALUE 'GMP', "GMP Text element
c_ele_gmpi(4) TYPE c VALUE 'GMPI', "GMPI Text element
add begin CR1432
c_ele_bgmp(4) TYPE c VALUE 'BGMP', "BGMP
c_ele_bgmpi(5) TYPE c VALUE 'BGMPI', "BGMPI
add end CR1432
c_function(3) TYPE c VALUE 'SET', "Function
c_type(4) TYPE c VALUE 'BODY', "Window area in main window
c_win_head(7) TYPE c VALUE 'HEADING', "Heading window
c_win_shead(7) TYPE c VALUE 'SUBHEAD', "sub heading window
c_win_fot1(7) TYPE c VALUE 'FOOTER1', "Footer 1 window
c_win_main(4) TYPE c VALUE 'MAIN', "Main window
c_comd(8) TYPE c VALUE 'NEW-PAGE', "New-page command
c_zar TYPE ekko-bsart VALUE 'ZAR',
c_x TYPE c VALUE 'X', "Indicator for print options
c_f TYPE c VALUE 'F', "Indicator for Purchase Order
add begin CR1591
Deletion indicator in purchasing document
c_loekz(1) TYPE c VALUE 'L',
For ranges tables
c_sign_i(1) TYPE c VALUE 'I', "Sign(include)
c_op_eq(2) TYPE c VALUE 'EQ', "Option(=)
Confirmation category
c_ebtyp_ab(2) TYPE c VALUE 'AB', "Order acknowledgment
add end CR1591
c_la(2) TYPE c VALUE 'LA'. "Indicator for Inbound deliver
Database Tables
Vaiables / Internal tables *
Internal table to store PO information
Not used after CR1591
DATA: BEGIN OF t_purc OCCURS 0,
ebeln LIKE eket-ebeln, "Purchasing Document Number
ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled quantity
charg LIKE eket-charg, "Batch number
matnr LIKE ekpo-matnr, "Material code
werks LIKE ekpo-werks, "Plant
meins LIKE ekpo-meins, "Unit of measure
lifnr LIKE ekko-lifnr, "Vendor number
END OF t_purc.
Internal table to store material description.
DATA: BEGIN OF t_makt OCCURS 0,
matnr LIKE makt-matnr, "Material code
maktx LIKE makt-maktx, "Material description
END OF t_makt.
Internal table for storage of final EKET data
DATA: BEGIN OF t_eket OCCURS 0,
ebeln LIKE eket-ebeln, "Purchasing Document Number
ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
ebelp_ex(6) TYPE n, "Extended ebelp with length 6
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled quantity
dabmg LIKE ekes-dabmg, " Delivered Quantity
charg LIKE eket-charg, "Batch number
matnr LIKE ekpo-matnr, "Material code
werks LIKE ekpo-werks, "Plant
maktx LIKE makt-maktx, "Material Description-- jp check
etens LIKE ekes-etens, "Sequence Number
meins LIKE ekpo-meins, "Unit of measure
lifnr LIKE ekko-lifnr, "Vendor number
vbeln LIKE ekes-vbeln,
vbelp LIKE ekes-vbelp,
vpnam(40) TYPE c, "Vendor product name
END OF t_eket.
Internal table for extraction of data from EKES
Not used after CR1591
DATA: BEGIN OF t_ekes OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE ekes-eindt, "Item delivery date
menge LIKE ekes-menge, "Scheduled Quantity
dabmg LIKE ekes-dabmg, " delivered quantity
vbeln LIKE ekes-vbeln,
vbelp LIKE ekes-vbelp,
mark TYPE c,
END OF t_ekes.
Internal table for extraction of data from EKES
Not used after CR1591
DATA: BEGIN OF t_ekes_temp OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE ekes-eindt, "Item delivery date
menge LIKE ekes-menge, "Scheduled Quantity
END OF t_ekes_temp.
Internal table for storing data from MLGN table.
DATA: BEGIN OF t_mlgn OCCURS 0,
matnr LIKE mlgn-matnr, "material code
lhmg1 LIKE mlgn-lhmg1, "Standard pallet size
lhme1 LIKE mlgn-lhme1, "Unit of measure
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
END OF t_mlgn.
Internal table for storing data from MARM table.
DATA: BEGIN OF t_marm OCCURS 0,
matnr LIKE marm-matnr, "material code
umrez LIKE marc-zzjp_cas_size, "Std package unit
meins LIKE ekpo-meins, "alternate unit
END OF t_marm.
Internal table for storing data from MARC table.
DATA: BEGIN OF t_marc OCCURS 0,
matnr LIKE marc-matnr, "Material code
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
zzjp_aprn LIKE marc-zzjp_aprn, "Apperance
zzjp_re1 LIKE marc-zzjp_re1, "Heading
END OF t_marc.
Internal table for storing data from lfa1 table.
DATA: BEGIN OF t_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr, "Vendor code
name1 LIKE lfa1-name1, "Vendor name
END OF t_lfa1.
Internal table for Storing data from LIPS table.
DATA: BEGIN OF t_lips OCCURS 0,
vbeln LIKE lips-vbeln, "Delivery document no
posnr LIKE lips-posnr, "Item number for Delivery document
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
END OF t_lips.
Internal table for storing the final display data.
DATA: BEGIN OF t_display OCCURS 0,
g_checkbox type c, "check box for selection of records
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled Quantity
vpnam(40) TYPE c, "Vendor product name
lifnr LIKE ekko-lifnr, "Vendor code
name1 LIKE lfa1-name1, "Vendor name
meins LIKE ekpo-meins, "Unit of measure
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description-- jp check
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
lhmg1 LIKE mlgn-lhmg1, "standard pallet size
lhme1 LIKE mlgn-lhme1, "Unit of standard pallet
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
umrez LIKE marc-zzjp_cas_size, "Std package unit
meinh LIKE ekpo-meins, "alternate unit
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
zzjp_aprn LIKE marc-zzjp_aprn, "Apperance
zzjp_re1 LIKE marc-zzjp_re1, "Heading
std_pac_no(13) TYPE n, "Std receipt package no
tot_std_pt(13) TYPE n, "Total no of std pallets
add begin CR1447
Add new field 'Goods-in-order','Item' for goods in plan list
vbeln like ekes-vbeln, "Goods-in-order
vbelp like ekes-vbelp, "Item
add end CR1447
END OF t_display.
Internal table for storing the final display data -Goods in order list
DATA: BEGIN OF t_display1 OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled Quantity
vpnam(40) TYPE c, "Vendor product name
lifnr LIKE ekko-lifnr, "Vendor code
name1 LIKE lfa1-name1, "Vendor name
meins LIKE ekpo-meins, "Unit of measure
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description-- jp check
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
lhmg1 LIKE mlgn-lhmg1, "standard pallet size
lhme1 LIKE mlgn-lhme1, "Unit of standard pallet
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
umrez LIKE marc-zzjp_cas_size, "Std package unit
meinh LIKE ekpo-meins, "alternate unit
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
zzjp_aprn LIKE marc-zzjp_aprn, "Apperance
zzjp_re1 LIKE marc-zzjp_re1, "Heading
std_pac_no(13) TYPE n, "Std receipt package no
tot_std_pt(13) TYPE n, "Total no of std pallets
END OF t_display1.
Internal table for storing the final display data - Goods in plan list
DATA: BEGIN OF t_display2 OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled Quantity
name1 LIKE lfa1-name1, "Vendor name
meins LIKE ekpo-meins, "Unit of measure
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description-- jp check
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
lhmg1 LIKE mlgn-lhmg1, "standard pallet size
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
tot_std_pt(13) TYPE n, "Total no of std pallets
add begin CR1447
Add new field 'Goods-in-order','Item' for goods in plan list
vbeln like ekes-vbeln, "Goods-in-order
vbelp like ekes-vbelp, "Item
add end CR1447
END OF t_display2.
add begin CR1591
RANGES: r_matnr FOR mara-matnr, "for p_matnr
r_ebeln FOR ekpo-ebeln. "for p_ebeln
add end CR1591
DATA: line TYPE i. " line number
DATA: g_checkbox TYPE c. "check box for selection of records
DATA: g_tab LIKE sy-index. "variable to hold index
DATA g_tabix LIKE sy-tabix. "holder for table index
Printing Options.
DATA: lw_pr_options LIKE itcpo.
*lw_pr_options-tddest = 'SA03'. " Print Device Name
lw_pr_options-tdpreview = 'X'. " Print Preview
lw_pr_options-tdnewid = 'X'. " New Request
lw_pr_options-tdlifetime = 2. " Retention in Spool
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
SELECT-OPTIONS:
s_date FOR sy-datum DEFAULT sy-datum. " Search period.
PARAMETERS:
p_matnr LIKE mara-matnr, " Material code
p_ebeln LIKE ekpo-ebeln. " Purchase Document No
SELECTION-SCREEN END OF BLOCK blk1.
Selection Screen Checks *
AT SELECTION-SCREEN.
IF ( s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
MESSAGE e000 WITH 'Entry Must in atleast one of the Fields'(t00).
ENDIF.
IF ( NOT p_matnr IS INITIAL ) AND
( s_date IS INITIAL ) AND
( p_ebeln IS INITIAL ).
MESSAGE e000 WITH 'Date should also be Entered'(t01).
ENDIF.
del begin CR1591
This check is not found in original FS
IF ( NOT p_matnr IS INITIAL ) AND
( s_date IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
MESSAGE e000 WITH 'Date should also be Entered'(t01).
ENDIF.
del end CR1591
Validations for Data selection *
del begin CR1591
Waste check
IF ( NOT s_date IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
PERFORM f_check_date_in_eket.
ENDIF.
IF ( NOT s_date IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
PERFORM f_check_matnr_in_plant.
PERFORM f_check_matnr_in_ekpo.
PERFORM f_check_date_in_eket.
PERFORM f_check_matnr_in_plant.
PERFORM f_check_matnr_in_ekpo.
ENDIF.
IF ( NOT s_date IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
PERFORM f_check_matnr_in_plant.
PERFORM f_check_matnr_in_ekpo.
PERFORM f_check_date_in_eket.
PERFORM f_check_ebeln_in_ekpo.
PERFORM f_check_werks_in_ekpo.
ENDIF.
IF ( NOT p_ebeln IS INITIAL ) AND
( NOT s_date IS INITIAL ) AND
( p_matnr IS INITIAL ).
PERFORM f_check_date_in_eket.
PERFORM f_check_ebeln_in_ekpo.
PERFORM f_check_werks_in_ekpo.
ENDIF.
IF ( NOT p_ebeln IS INITIAL ) AND
( s_date IS INITIAL ) AND
( p_matnr IS INITIAL ).
PERFORM f_check_ebeln_in_ekpo.
PERFORM f_check_werks_in_ekpo.
ENDIF.
del end CR1591
Data selection from Tables *
START-OF-SELECTION.
SET PF-STATUS 'SELECT'.
add begin CR1591
Set ranges tables
PERFORM set_ranges.
add end CR1591
mod begin CR1591
**Selection of PO data from EKET into internal table t_purc.
PERFORM f_select_eket.
**Selection of corresponding PO data for EKET from EKES into t_ekes.
PERFORM f_select_ekes.
**Selection of material desc from MAKT table into T_makt.
PERFORM f_select_makt.
**Copy the contents of t_purc and t_makt into t_eket table.
PERFORM f_move_eket.
**Replace the corresponding entries of t_eket with t_ekes.
PERFORM f_update_eket.
Selection of PO data from EKET into internal table T_EKET.
PERFORM f_select_eket2.
Selection of corresponding PO data from EKES appending to T_EKET.
PERFORM f_select_ekes2.
Selection of material desc from MAKT table into T_MAKT.
PERFORM f_select_makt2.
mod end CR1591
*Selection of vendor product name.
PERFORM f_select_vpnam.
del begin CR1591
No need
**copy t_eket-ebelp into temporary variable.
PERFORM f_copy_ebelp.
del end CR1591
*selection of data from MLGN table into t_mlgn internal table
PERFORM f_select_mlgn.
*selection of data from marm table into t_marm internal table
PERFORM f_select_marm.
*selection of data from marc table into t_marc internal table
PERFORM f_select_marc.
*selection of data from lfa1 table into t_lfa1 internal table
PERFORM f_select_lfa1.
*Selection of data from LIPS table into t_lips internal table
PERFORM f_select_lips.
del begin CR1591
Don't display list screen when no data exists
*END-OF-SELECTION.
del end CR1591
*lines = sy-linno - 1.
*Collection of data into the final display internal table t_Display
PERFORM f_collect_final.
*Display the contents of t_display as a simple List
PERFORM f_list_display.
AT USER-COMMAND.
PERFORM f_select_layout.
INCLUDE zjpmipu315.
INCLUDE zjpmipu316.
*& Form f_check_MATNR_in_plant
This Routine is to check if the the selected material code is
available in the plant 'JP01'.
FORM f_check_matnr_in_plant.
DATA: l_matnr LIKE mara-matnr.
SELECT matnr UP TO 1 ROWS FROM marc
INTO l_matnr
WHERE
matnr = p_matnr AND
werks = c_werks.
ENDSELECT.
IF l_matnr IS INITIAL.
MESSAGE e000 WITH
'The material is not available in '(t02) c_werks 'plant'(t20).
ENDIF.
ENDFORM. " f_check_MATNR_in_plant
*& Form f_check_EBELN_in_EKPO
This Routine is to check if the Purchase order number selected
is existing or not and if it exists, check if it is related to
the plant 'JP01'.
FORM f_check_ebeln_in_ekpo.
DATA: l_ebeln LIKE ekpo-ebeln.
SELECT ebeln UP TO 1 ROWS FROM ekpo
INTO l_ebeln
WHERE
ebeln = p_ebeln AND
werks = c_werks.
ENDSELECT.
IF l_ebeln IS INITIAL.
MESSAGE e000 WITH
'PO not available or not related to '(t03) c_werks 'plant'(t21).
ENDIF.
ENDFORM. " f_check_EBELN_in_EKPO
*& Form f_check_matnr_in_ekko
This routine is to check if any PO exist for the selected
Material code.
FORM f_check_matnr_in_ekpo.
DATA: l_matnr LIKE ekpo-matnr.
SELECT matnr UP TO 1 ROWS FROM ekpo
INTO l_matnr
WHERE
matnr = p_matnr.
ENDSELECT.
IF l_matnr IS INITIAL.
MESSAGE e000 WITH
'PO does not exist for the material no'(t04) p_matnr.
ENDIF.
ENDFORM. " f_check_matnr_in_ekpo
*& Form f_check_date_in_eket
This routine is to check if any purchase order exists
with the selected
FORM f_check_date_in_eket.
DATA: l_eindt LIKE eket-eindt.
SELECT eindt UP TO 1 ROWS FROM eket
INTO l_eindt
WHERE
eindt IN s_date.
ENDSELECT.
IF l_eindt IS INITIAL.
MESSAGE e000 WITH
'No PO exist with the selected delivery date '(t05).
ENDIF.
ENDFORM. " f_check_date_in_eket
*& Form f_check_werks_in_ekpo
This Routine is to check if the selected purchase order
is associated with the plant JP01
FORM f_check_werks_in_ekpo.
DATA: l_ebeln LIKE ekpo-ebeln.
SELECT ebeln UP TO 1 ROWS FROM ekpo
INTO l_ebeln
WHERE
werks = c_werks.
ENDSELECT.
IF l_ebeln IS INITIAL.
MESSAGE e000 WITH
'The selected P0 is not relevant to '(t06) c_werks 'plant'(t22).
ENDIF.
ENDFORM. " f_check_werks_in_ekpo
*& Form f_select_eket
Routine to collect data from EKET, EKPO, MAKT, EKKO tables
using inner join and store the data into internal table
t_PURC. The data selection is based on the selection screen's
input.
FORM f_select_eket.
IF ( NOT s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( NOT s_date-low IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~matnr = p_matnr AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( NOT s_date-low IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~matnr = p_matnr AND
ekpo~ebeln = p_ebeln AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
ekpo~ebeln = p_ebeln AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( NOT s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~ebeln = p_ebeln AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ENDIF.
IF sy-subrc <> 0.
MESSAGE s000 WITH 'Data not found'(t07).
LEAVE LIST-PROCESSING.
ELSE.
SORT t_purc.
ENDIF.
ENDFORM. " f_select_eket
*& Form f_select_makt
Routine to select the material description for all the
materials present in T_purc table
FORM f_select_makt.
DATA: l_t_makt(4) TYPE c VALUE 'MAKT'.
SELECT
matnr
maktx
FROM
makt
INTO TABLE t_makt
FOR ALL ENTRIES IN t_purc
WHERE
matnr = t_purc-matnr AND
spras = c_spras.
IF sy-subrc <> 0.
MESSAGE s000 WITH
'Relevant data not found in'(t09) l_t_makt 'table'(t23).
ELSE.
SORT t_makt.
ENDIF.
ENDFORM. " f_select_makt
*& Form f_move_eket
Routine to join data in T_PURC and T_MAKT tables into
internal table T_MAKT.
FORM f_move_eket.
LOOP AT t_purc.
t_eket-ebeln = t_purc-ebeln.
t_eket-ebelp = t_purc-ebelp.
t_eket-eindt = t_purc-eindt.
t_eket-menge = t_purc-menge.
t_eket-charg = t_purc-charg.
t_eket-matnr = t_purc-matnr.
t_eket-werks = t_purc-werks.
t_eket-meins = t_purc-meins.
t_eket-lifnr = t_purc-lifnr.
READ TABLE t_makt WITH KEY matnr = t_purc-matnr
BINARY SEARCH.
IF sy-subrc = 0.
t_eket-maktx = t_makt-maktx.
ENDIF.
APPEND t_eket.
CLEAR t_eket.
ENDLOOP.
ENDFORM. " f_move_eket
*& Form f_select_ekes
Routine to select EKES data for all corresponding entries
of T_EKET.
FORM f_select_ekes.
DATA: l_tabix TYPE i.
IF NOT s_date IS INITIAL.
SELECT
ebeln
ebelp
etens
eindt
menge
INTO TABLE t_ekes
FROM
ekes
WHERE
eindt IN s_date.
ELSE.
DESCRIBE TABLE t_purc LINES l_tabix.
IF l_tabix GT 0.
SELECT
ebeln
ebelp
etens
eindt
menge
dabmg
vbeln
vbelp
FROM
ekes
INTO TABLE t_ekes
FOR ALL ENTRIES IN t_eket
FOR ALL ENTRIES IN t_purc
WHERE
ebeln = t_purc-ebeln AND
ebelp = t_purc-ebelp AND
eindt IN s_date.
AND ebeln eq p_ebeln.
and matnr in p_matnr.
ENDIF.
CLEAR l_tabix.
IF NOT s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
SELECT
ekes~ebeln
ekes~ebelp
ekes~etens
ekes~eindt
ekes~menge
ekes~dabmg
APPENDING TABLE t_ekes
FROM ekes
WHERE
eindt IN s_date AND
ebeln EQ p_ebeln AND
ebtyp EQ c_la.
ELSEIF NOT s_date IS INITIAL AND p_ebeln IS INITIAL.
SELECT
ekes~ebeln
ekes~ebelp
ekes~etens
ekes~eindt
ekes~menge
ekes~dabmg
APPENDING TABLE t_ekes
FROM ekes
WHERE
eindt IN s_date AND
ebeln EQ p_ebeln AND
ebtyp EQ c_la.
ELSEIF s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
SELECT
ekes~ebeln
ekes~ebelp
ekes~etens
ekes~eindt
ekes~menge
ekes~dabmg
APPENDING TABLE t_ekes
FROM ekes
WHERE
eindt IN s_date AND
ebeln EQ p_ebeln AND
ebtyp EQ c_la.
ENDIF.
IF sy-subrc = 0.
SORT t_ekes.
ENDIF.
IF NOT t_ekes[] IS INITIAL.
t_ekes_temp[] = t_ekes[].
SORT t_ekes_temp BY ebeln ebelp.
DELETE ADJACENT DUPLICATES FROM t_ekes_temp COMPARING ebeln ebelp.
LOOP AT t_ekes_temp.
READ TABLE t_purc WITH KEY ebeln = t_ekes_temp-ebeln
ebelp = t_ekes_temp-ebelp.
IF sy-subrc NE 0.
CLEAR t_purc.
SELECT SINGLE
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO CORRESPONDING FIELDS OF t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~ebeln = t_ekes_temp-ebeln
AND eket~ebelp = t_ekes_temp-ebelp
AND ekpo~elikz NE c_x
AND ekko~bstyp EQ c_f
AND ekko~bsart NE c_zar.
IF sy-subrc EQ 0.
APPEND t_purc.
CLEAR t_purc.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
REFRESH: t_ekes_temp, t_ekes.
CLEAR: t_ekes_temp, t_ekes.
Once the header is filled up get the details from EKES
SELECT ebeln ebelp etens eindt menge dabmg vbeln vbelp
INTO TABLE t_ekes
FROM ekes
FOR ALL ENTRIES IN t_purc
WHERE ebeln EQ t_purc-ebeln.
Mark the entries as 'X' which falls in the date range
LOOP AT t_ekes.
IF t_ekes-eindt IN s_date.
t_ekes-mark = 'X'.
MODIFY t_ekes INDEX sy-tabix TRANSPORTING mark.
ENDIF.
ENDLOOP.
SORT t_ekes BY ebeln ebelp ASCENDING mark DESCENDING.
Delete the entries from eket if no entries in EKES falls in the period
LOOP AT t_purc.
l_tabix = sy-tabix.
READ TABLE t_ekes WITH KEY ebeln = t_purc-ebeln
ebelp = t_purc-ebelp.
IF sy-subrc EQ 0.
IF t_ekes-mark NE 'X'.
DELETE t_purc INDEX l_tabix.
ENDIF.
ENDIF.
ENDLOOP.
delete the entries from EKES which do not fall in the specified period
DELETE t_ekes WHERE mark NE 'X'.
ENDFORM. " f_select_ekes
*& Form f_update_eket
Routine to substitute relevant t_eket entries with that of
t_ekes entries.It does not modify the remaining entries for
for which the corresponding values in t_ekes doesnot exist.
FORM f_update_eket.
DATA: BEGIN OF lt_temp_eket OCCURS 0,
ebeln LIKE eket-ebeln, "Purchasing Document Number
ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled quantity
dabmg LIKE ekes-dabmg, " Delivered quantity
matnr LIKE ekpo-matnr, "Material code
maktx LIKE makt-maktx, "Material Description-- jp check
etens LIKE ekes-etens, "Sequence Number
meins LIKE ekpo-meins, "Unit of measure
lifnr LIKE ekko-lifnr, "Vendor number
charg LIKE eket-charg, " Batch number Added by PD 08/08/03
vbeln LIKE ekes-vbeln,
vbelp LIKE ekes-vbelp,
END OF lt_temp_eket,
l_menge LIKE ekes-menge.
LOOP AT t_eket.
LOOP AT t_ekes WHERE ebeln = t_eket-ebeln
AND ebelp = t_eket-ebelp.
Added by PD 08/08/03
MOVE t_eket-charg TO lt_temp_eket-charg.
addition ends
MOVE t_eket-ebeln TO lt_temp_eket-ebeln.
MOVE t_eket-ebelp TO lt_temp_eket-ebelp.
MOVE t_eket-meins TO lt_temp_eket-meins.
CLEAR l_menge.
l_menge = t_ekes-menge - t_ekes-dabmg.
IF l_menge LE 0.
CONTINUE.
ELSE.
MOVE l_menge TO lt_temp_eket-menge.
ENDIF.
MOVE t_ekes-eindt TO lt_temp_eket-eindt.
MOVE t_ekes-etens TO lt_temp_eket-etens.
MOVE t_eket-lifnr TO lt_temp_eket-lifnr.
MOVE t_eket-maktx TO lt_temp_eket-maktx.
MOVE t_eket-matnr TO lt_temp_eket-matnr.
MOVE t_ekes-vbeln TO lt_temp_eket-vbeln.
MOVE t_ekes-vbelp TO lt_temp_eket-vbelp.
APPEND lt_temp_eket.
CLEAR lt_temp_eket.
CLEAR t_ekes.
ENDLOOP.
IF sy-subrc NE 0.
Added by PD 08/08/03
MOVE t_eket-charg TO lt_temp_eket-charg.
addition ends
MOVE t_eket-ebelnDear
Problem No 1 : we are working in a process industries with three plants each of them have three order type. we have define MRP group in "OPPR" then assign each MRP group to Orde types in "OPPE". Now the problem is whn i convert plan order in process order for any material systme automaticaly pick the order type PIi01.
Answer :
1.Please check the OPPR -Plant and MRP group -Select Order Type Button -Check what Order Type you have assinged here ( PI01( May be the default Process Order Type )
2.If you are maintaing MRP group ( 0001 or 0002) , did you asisng the same in MRP1 view ?? because
3.Did you maintain the similar Order type in OPKP -Define Production Scheduling Profile ? -This has highest priority .
4.Did you maintain correct order type in OPJH-Maintain Order Type ??
Refer the expert comments on the same issue : Strategy group to define production order type
Problem No 2: 2nd Problem is system system is not creating plan order for prrevios dates. say i enter PIR for month of november from first november to 30th november and run MRP on 29th the sytem create plan order on 30th of november with exception message 30.
Answer : You can plan the order in back dated , if you maitain Satrt date in the Past optiuon in OPU3/OPU5-Define Scheduling parameters .Goto OPU3 -Select the Order Type -Double click -Maintain 90-60 days in the Start Date in the past in Scheduling Control and Details scheduling tab .
Hope it helps
regards
JH -
Inspection type 01 - inspection lot creation based on vendor batch number
Hi Guys,
this topic has been discussed several times here, but I was not able to find a suitable answer for my question.
I am facing the folowing requirement:
I have activated inspection type 01 for a raw material.
I am receiving a firs goods receipt from vendor A with vendor batch number 0001.
The system creates its own goods receipt batch number 0546 based on internal numbering.
A new inspection lot is created.
I am posting a second goods receipt from vendor a with vendor batch 0001.
The system creates a new batch number 0547 based on internal numbering.
A new inspection lot is created.
I do not want to get the second inspection lot, because I received vendor batch 0001 before and I am assuming it has been inspected or is in inspection.
Option 1: Post the second goods receipt against the first internal batch number created.
I am aware of this need at the moment, but a user is not always checking if there is an internal batch with the same vendor received before.
Can I customize the system to create inspection lots based on the fact that the vendor batch number was received before?
Or do I have to use an exit and some ABAP code to get the wanted result?
Thanks for your advice in advance.You need to use one of the enhancements that Do-Wook has suggested. There is no standard SAP way to suppress the inspection based on the vendor batch number.
With the first enhancement you use the system to check for a previously received vendor batch and if one is found, then that batch number is proposed and not the next one from the numbering series. In this case, the lot isn't created than due to the inspection lot control of the inspection type.
With the second enhancement you check the vendor batch number and if it's been received you suppress the inspection lot creation and the stock goes right to unrestricted.
You'll probably need to do one or the other. Myself, I prefer the first enhancement.
Craig -
To bring the Vendor name & Code in FBL3N Report
Hi Friends,
As we need to bring the Vendor name / Code in FBL3N report, we have given the settings in the SPRO ( SPRO>Financial Accounting>General Ledger Accounting>G/L Accounts->Line items>Line items Display-->Define special fields for finding and sorting data ) by putting of BSEG table and assigned the same with LIFNR field and transported the same to Development server for testing, but after transport, the above requirements are NOT coming while we run the FBL3N report,
Please guide me to bring the same in FBL3N as it is important requirement for us.
Thanks
G. JanaHi
If you are on ECC 6.0 you can use report FAGLL03. However, if you need to get vendor name also, you need to do refer to link
Re: adding a field to FBL3N
Regards
Sanil K Bhandari -
Dear Sir
For Getting Vendor Batch Tracking
We are have adopted a Process in our company as below.
1) @ Inward entry (105 nmovement ) an internal Batch will be created.
2) @Quality clearance(qa32) the item is being moved to unrestricted stock by selecting the option "New material", and by giving the same material code & entering new manual batch(Vendor batch) we are moving it into the stock .
So internal batch will be a parent batch in our premises for tracking the Vendor batch.
But the problem we are facing in this procedure is
the vendor batches we are getting is 15 to 18 characters but internal or external batch number is only of 10 characters.
Does the poblem will be solved with document batch adoption.
So kindly please suggest a new procedure or any adoptabl;e condition to overcome my problem.
Regards
ChaitanyaHi,
You should use Vendor Batch field (MCHA-LICHA) under Trading Data Info in Basic data1 of Batch Master record in order to store Vendor Batch tracking. This field has 15 length character. So if you need to have more character you should go for text field only.
Regards,
Girang -
Vendor batch is retrieved from LIPS-LICHN only if LIPS-LICHN is not blank,
(Current design)
Batch is retrieved from LIPS-CHARG
Vendor batch is retrieved from LIPS-LICHN
(If there is no record in LIPS, blank will be printed out for both fields)
REQUIREMENT:
Batch is retrieved from LIPS-CHARG
Vendor batch is retrieved from LIPS-LICHN only if LIPS-LICHN is not blank.
If LIPS-LICHN is blank, vendor batch is retrieved from LIPS-CHARG.
(If there is no record in LIPS, blank will be printed out for both fields. If both LIPS-CHARG and LIPS-LICHN are blank, blank will be printed out for both fields)
t-lips is the internal table :
DATA: BEGIN OF t_lips OCCURS 0,
vbeln LIKE lips-vbeln, "Delivery document no
posnr LIKE lips-posnr, "Item number for Delivery document
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
END OF t_lips.
Following is the piece of code:
*& Form f_collect_final
Routine to collect all the display data into the final internal
table t_display.
FORM f_collect_final.
DATA: l_std_pac_no LIKE eket-menge,
l_std_pac_no_out(13) TYPE p,
l_tot_std_pt(13) TYPE c,
l_rmdr(13) TYPE n,
l_qtnt(13) TYPE n,
l_tabix TYPE i.
LOOP AT t_eket.
t_display-ebeln = t_eket-ebeln.
t_display-ebelp = t_eket-ebelp.
t_display-etens = t_eket-etens.
t_display-eindt = t_eket-eindt.
t_display-menge = t_eket-menge.
t_display-meins = t_eket-meins.
t_display-matnr = t_eket-matnr.
mod begin CR1591
t_display-maktx = t_eket-maktx.
READ TABLE t_makt WITH KEY matnr = t_eket-matnr
BINARY SEARCH.
IF sy-subrc = 0.
t_display-maktx = t_makt-maktx.
ENDIF.
mod end CR1591
t_display-vpnam = t_eket-vpnam.
t_display-lifnr = t_eket-lifnr.
t_display-charg = t_eket-charg.
READ TABLE t_mlgn WITH KEY matnr = t_eket-matnr
BINARY SEARCH.
IF sy-subrc = 0.
t_display-lhmg1 = t_mlgn-lhmg1.
t_display-lhme1 = t_mlgn-lhme1.
t_display-lety1 = t_mlgn-lety1.
t_display-ltkze = t_mlgn-ltkze.
ENDIF.
READ TABLE t_marm WITH KEY matnr = t_eket-matnr
BINARY SEARCH.
IF sy-subrc = 0.
t_display-umrez = t_marm-umrez.
t_display-meinh = t_eket-meins.
ENDIF.
READ TABLE t_marc WITH KEY matnr = t_eket-matnr
BINARY SEARCH.
IF sy-subrc = 0.
t_display-zzjp_nyu_sop = t_marc-zzjp_nyu_sop.
t_display-zzjp_dos_frm = t_marc-zzjp_dos_frm.
t_display-zzjp_aprn = t_marc-zzjp_aprn.
t_display-zzjp_re1 = t_marc-zzjp_re1.
ENDIF.
READ TABLE t_lfa1 WITH KEY lifnr = t_eket-lifnr
BINARY SEARCH.
IF sy-subrc = 0.
t_display-name1 = t_lfa1-name1.
ENDIF.
READ TABLE t_lips WITH KEY vbeln = t_eket-vbeln
posnr = t_eket-vbelp
BINARY SEARCH.
l_tabix = sy-tabix.
IF sy-subrc = 0.
t_display-charg = t_lips-charg.(I think this is the place to change).
t_display-lichn = t_lips-charg.
ENDIF.
I have tried with the following code, but it is not working.
IF sy-subrc = 0.
t_display-charg = t_lips-charg.
IF not t_lips-lichn is initial.
t_display-lichn = t_lips-lichn.
ELSE.
t_display-lichn = t_lips-charg.
ENDIF.
ENDIF.Hi,
Find the modification below, consider the bold text and remove the old one:
READ TABLE t_lips WITH KEY vbeln = t_eket-vbeln
posnr = t_eket-vbelp
BINARY SEARCH.
l_tabix = sy-tabix.
IF sy-subrc = 0.
<b>if t_lips-lichn EQ space AND
t_lips-charg NE space.
t_display-charg = t_lips-charg.
t_display-lichn = t_lips-charg.
endif.</b>
<i>t_display-charg = t_lips-charg.(I think this is the place to change).
t_display-lichn = t_lips-charg.</i>ENDIF. -
Adding new Batch Number to AP Invoice
i am working on adding new batch number to an existing AP IN by SDK function. I try the following codes, no errors prompt but also nothing updated. Can anyone advise me how to add new batch number to AP Invoice? Many Thanks!
Dim ErrMsg As String
Dim ErrCode As Integer
Dim opch As SAPbobsCOM.Documents
opch = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseInvoices)
opch.GetByKey(5)
opch.Lines.BatchNumbers.Add()
opch.Lines.BatchNumbers.BatchNumber = "3"
opch.Lines.BatchNumbers.Quantity = 3
ret = opch.Update
If ret <> 0 Then
oCompany.GetLastError(ErrCode, ErrMsg)
MsgBox(ErrCode & " " & ErrMsg)
End IfHi ,
Steps to do:
1.Create an User Defined Field on Document Row Level:
Name: Serial / Batch Details
Type: Alphanumeric
Structure: Text
- Create a Formatted Search which will populate the data from Delivery note.
- Put the UDF into the Print Layout of Delivery Order.
Displaying Batch Details
2. Decide with information is needed from Batch details to be printed out on A/R Invoice
On Bacth Details form (Inventory\Item Management\Batches\Batch Details) we can see all the possible details.
- Batch Number
- Delivered Quantity
- Expiration Date
3. Build the formatted search SQL command.
By a SQL cursor driven result set we can build a text which contains the list of the delivered batch details separated by new lines. The relations between A/R Invoice and Delivery note is defined on A/R Invoice Form. in columns 45, 46, and 43
declare @batch as nvarchar(100)
declare @txt nvarchar(max)
set @txt = ''
declare P cursor for SELECT T0.[BatchNum] + space(1)
+ cast(cast(T1.[Quantity] as decimal(19,2)) as nvarchar)
+ space(1) + case when T0.[ExpDate] is null then '' else convert(nvarchar,T0.[ExpDate],102) end
FROM OIBT T0 INNER JOIN IBT1 T1 ON T0.ItemCode = T1.ItemCode and T0.WhsCode = T1.WhsCode
and T0.BatchNUm = T1.BatchNum
WHERE T1.[BaseEntry] =$[$38.45.0] and T1.[BaseLinNum] =$[$38.46.0]
open P
fetch next from P into @batch
while @@fetch_status = 0
begin
set @txt = @txt '\n'@batch +','
fetch next from P into @batch
end
close P
deallocate P
select @txt
4. Defined the formatted search on the A/R Invoice. -
MIGO field selection - vendor batch number
I created a new movement type by copying from the standard SAP movement type 501 (GR w/o purchase order).
When posting a GR with this movement type and a batch-managed material, the Batch field is open for entry but the Vendor Batch field (GOITEM-LICHA) is suppressed. I suppose this is because SAP does not expect you to enter any vendor-related information if you do not have a PO. And similarly if you have vendor-related information (like a vendor's batch number) you should be using a PO.
However the business requires a Vendor Batch number to be entered in this scenario.
Does anyone know how to make the Vendor Batch field open for input when using a specific movement type?
I'm thinking maybe a BADI like MB_MIGO_ITEM_BADI is my only option. I've tried the MIGO field selection (OMJX) but couldn't make this work. Any input would be appreciated.
Thanks!I am afraid I must confirm that, as you have already seen, it is not possible to enter a Vendor Batch (LICHA) in a goods receipt without reference to the purchase order with the movemement types 501, 511 or 561.
There is no standard system setting or program code available which can set this entry as required or optional. This kind of requirement can only be achieved through a software modification,
Also, please notice that although you can enter a Vendor Batch when posting a goods movement with reference to a purchase order, you cannot display it later with transaction MIGO:
Please, kindly check the information contained under the attached note regarding this matter:
330585 - MIGO: Vendor batch in material document display.
As stated in this note, under the 'System response after the note is implemented' section:
"After the attached correction instructions are implemented, the field
can no longer be seen in the display of the material document for the
vendor batch using Transaction MIGO. Displaying the vendor batch does
not make much sense since it might have changed since the posting of
the material document. The material document itself does not have the
information of the vendor batch that was entered at that time. In the
system, only the information of the current vendor batch exists for
the batch."
Sorry not having a positive answer ! =/
Plauto -
Database logon failed. Database Vendor Error Code: 0
Hi all,
I'm running a java web application and use crystal report XI.
It works normally. One thing is : i would like to change the "Connection URL" when runtime.
These are my config:
_CRConfig.xml :
<?xml version="1.0" encoding="utf-8"?><CrystalReportEngine-configuration>
<reportlocation>../..</reportlocation>
<timeout>10</timeout>
<ExternalFunctionLibraryClassNames>
<classname> </classname>
<classname> </classname>
</ExternalFunctionLibraryClassNames>
<keycode>B6W60-01CS200-00GEGC0-0EX1</keycode>
<Javaserver-configuration>
<DataDriverCommon>
<JavaDir>C:\Business Objects\j2sdk1.4.2_08\bin</JavaDir>
<Classpath>C:\Business Objects\Common\3.5\java/lib/crlovmanifest.jar;C:\Business Objects\Common\3.5\java/lib/CRLOVExternal.jar;C:\Business Objects\Common\3.5\java/lib/CRDBJavaServerCommon.jar;C:\Business Objects\Common\3.5\java/lib/CRDBJavaServer.jar;C:\Business Objects\Common\3.5\java/lib/CRDBJDBCServer.jar;C:\Business Objects\Common\3.5\java/lib/CRDBXMLServer.jar;C:\Business Objects\Common\3.5\java/lib/CRDBJavaBeansServer.jar;C:\Business Objects\Common\3.5\java/lib/external/CRDBXMLExternal.jar;C:\Business Objects\Common\3.5\java/lib/external/log4j.jar;C:\Business Objects\Common\3.5\java/lib/cecore.jar;C:\Business Objects\Common\3.5\java/lib/celib.jar;C:\Business Objects\Common\3.5\java/lib/ebus405.jar;C:\Business Objects\Common\3.5\java/lib/corbaidl.jar;C:\Business Objects\Common\3.5\java/lib/external/freessl201.jar;C:\Business Objects\Common\3.5\java/lib/external/asn1.jar;C:\Business Objects\Common\3.5\java/lib/external/certj.jar;C:\Program Files\Business Objects\Common\3.5\java/lib/external/jsafe.jar;C:\Business Objects\Common\3.5\java/lib/external/sslj.jar;C:\tomcat\common\lib\oracle-driver.jar${CLASSPATH}</Classpath>
<IORFileLocation>${TEMP}</IORFileLocation>
<JavaServerTimeout>1800</JavaServerTimeout>
<JVMMaxHeap>256000000</JVMMaxHeap>
<JVMMinHeap>32000000</JVMMinHeap>
<NumberOfThreads>100</NumberOfThreads>
</DataDriverCommon>
<JDBC>
<CacheRowSetSize>100</CacheRowSetSize>
<JDBCURL>jdbc:mysql://Komodo-vmw:3306/warcraft</JDBCURL>
<JDBCClassName>com.mysql.jdbc.Driver</JDBCClassName>
<JDBCUserName>root</JDBCUserName>
<JNDIURL></JNDIURL>
<JNDIConnectionFactory></JNDIConnectionFactory>
<JNDIInitContext>/</JNDIInitContext>
<JNDIUserName>weblogic</JNDIUserName>
<GenericJDBCDriver>
<Default>
<ServerType>UNKNOWN</ServerType>
<QuoteIdentifierOnOff>ON</QuoteIdentifierOnOff>
<StoredProcType>Standard</StoredProcType>
<LogonStyle>Standard</LogonStyle>
</Default>
<Sybase>
<ServerType>SYBASE</ServerType>
<QuoteIdentifierOnOff>OFF</QuoteIdentifierOnOff>
<DriverClassName>com.sybase.jdbc2.jdbc.SybDriver</DriverClassName>
<StoredProcType>Standard</StoredProcType>
<LogonStyle>MySQL</LogonStyle>
</Sybase>
</GenericJDBCDriver>
</JDBC>
<XML>
<CacheRowSetSize>100</CacheRowSetSize>
<PreReadNBytes>4096</PreReadNBytes>
<XMLLocalURL></XMLLocalURL>
<SchemaLocalURL></SchemaLocalURL>
<XMLHttpURL></XMLHttpURL>
<SchemaHttpURL></SchemaHttpURL>
</XML>
<JavaBeans>
<CacheRowSetSize>100</CacheRowSetSize>
<JavaBeansClassPath></JavaBeansClassPath>
</JavaBeans>
</Javaserver-configuration>
</CrystalReportEngine-configuration>
_JSP file :
public ConnectionInfos setLogon() {
String dbUser = "root";
String dbPassword ="root";
ConnectionInfos oConnectionInfos=null;
try
//Create a new ConnectionInfos and ConnectionInfo object;
oConnectionInfos = new ConnectionInfos();
ConnectionInfo oConnectionInfo = new ConnectionInfo();
//Set username and password for the report's database
oConnectionInfo.setUserName(dbUser);
oConnectionInfo.setPassword(dbPassword);
PropertyBag pro = new PropertyBag();
Map<String, String> bag = new HashMap<String, String>();
bag.put("Connection URL", "jdbc:mysql://Komodo-vmw:3306/warcraft");
bag.put("Server Type", "JDBC (JNDI)");
bag.put("Database DLL", "crdb_jdbc.dll");
bag.put("Database Class Name", "com.mysql.jdbc.Driver");
oConnectionInfo.setAttributes(new PropertyBag(bag));
//Add object to collection
oConnectionInfos.add(oConnectionInfo);
} catch(Exception se) {
se.printStackTrace();
System.out.println("[error in setLogon ]");
return oConnectionInfos;
And i got error every times i run the report :
Database logon failed. Database Vendor Error Code: 0
Please help me.Thank you so much!Hi quang.
can u tell me how to solve this issue? on trying to open a report am facing this issue!
TIA -
Vendor batch and batch field on the inbound delivery
hi GUrus,
i have looked through most of the threads where the topic of vendor batch and batch on the inbound delviery has comeup. I'm specifically looking at a scneario where i would want to pass the on the batch number provided by the vendor on the IDOC to batch field on the inbound delivery. The reason for this is , i can look at the batch field in the confirmations tab of the PO, in the purchase order histroy tab of the PO, and also MMBE tcode. the material is also batch managed turned on in hte material master. But the issue is that even though i put the batch provided by vendor in the CHARG field on the ASN IDOC, it is still getting populated in the vendor batch field in the inbound delivery.
any ideas?
Thanks
RaviHi,
Refer the note: 833668 - Creating batches in the inbound delivery using IDOC which explains the system design.
Regards,
AKPT -
While creating PO using BAPI_PO_CREATE1 vendor batch number is not comming.
Hi Friends,
I am using BAPI " 'BAPI_PO_CREATE1' to create PO in my report.
The PO's are getting created but i the vendor batch number is not found in the PO.
Where as i am passing the vendor batch number.
bapimepoitem-vendrbatch = '2'.
bapimepoitemx-vendrbatch = 'X'.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = bapimepoheader
poheaderx = bapimepoheaderx
memory_uncomplete = 'X'
IMPORTING
exppurchaseorder = v_po_number
TABLES
return = bapiret2
poitem = bapimepoitem
poitemx = bapimepoitemx
poschedule = bapimeposchedule
poschedulex = bapimeposchedulx.
Commit the transaction
IF v_po_number NE space.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = bapiret2_c.
ENDIF.
Please reply urgently.
Thanks Regards,
Sandipan JenaHi
My answer is pure assumption.
Please check the following OSS notes
Note 758810 - BAPI_PO_CHANGE vendor batch and batch not visible
Note 1230268 - Field Vendor Batch never filled for PO BAPIs
Please take help from BASIS and SAP, before implementing the OSS note
Regards
Madhan D -
Code for Vendor Tax Code uniqueness
Hi,
When we are trying to create a new customer (transaction XD01) we would like to be informed if the Vendor Tax Code (KNA1-stcd2) is being used already.
Can you tell me what code do we have to insert and where.
Thanks.Hello,
I dont there would be direct way to check this out in SAP R/3.
What you can do is create a Z-DB table , say ZTAXCODE, which has Customer,Customer Group as Key Fields and taxcode as another field.
Now when User tries to save the Customer- then u can
1) Make use of BADI - CUSTOMER_ADD_DATA (SE18/SE19)
2) Make use of User Exit - FM EXIT_SAPMF02D_001 (Customers: User Exit for Checks prior to Saving) (SMOD/CMOD)
Here, you can the entry to your newly created table and chk if the entry user tries to maintain already exists. If yes, you can display an error message to the user.
Hope this helps. -
Hi,
Can anybody give a detailed explanation about what do u mean by vendor company codes.Hi Sandeep,
You want to know abt the assignement of vendor at diffferent levels then , it is assigned at 3 levels :
Client
company Code
Pur Org
Apartf rom above you can miantina vendor related information pertaining to plant, provided plant should come under the pur org.
If you want to know about the screen layout of venor master/field status for company codes, ckeck the link below :
http://help.sap.com/saphelp_47x200/helpdata/en/01/a9b47b455711d182b40000e829fbfe/frameset.htm
BR,
Krishna -
Vendor _company code mandatory
could some one tel me how to make the company code mandatory while creating the vendor using xk01
Hi,
This can not be controlled via field selection. You have to go for Transaction Variant for this in SHD0
Refer link;
[Step By Step Guide - Creating Transaction Variants|http://www.mortenhjorthnielsen.dk/Security/transactionvariants.htm]
In SHD0, enter following
Transaction Code XK01
Transaction Variant ZXK01
Now click on "Create" button
Here fill following
Vendor
Company Code
Purchasing Org.
Account Grpoup
And press enter, it will give the Screen entries pop-up
Here first fill 'Screen variant short txt" and then select Company Code as "Required" and click on "Enter" button in screen
Now press enter and save the info record, a pop-up will come save it after filling Screen variant short txt
And finally the main screen appears for the Full Vendor Master fields just save this by clicking on "SAVE" button on top.
It will as for "Package", specify and save it then it will ask for Request, create new and save it. This will be repeated for all the screens you have passed.
Now in SHD0, initial screen, go to "Standard Variants" Tab,
here enter Name as "ZXK01" and click on "Activate" button beside this field
Now go to XK01 and check plant will become a mandatory field.
Also take help of ABAPer if required. -
Hello,
I wanted to know the importnace of Payment method supplement in Vendor Company code view>>payment transaction view.
It would be kind if you explain by giving an example.
Thanks.List of the Payment Methods to be Considered
List of payment methods which may be used in automatic payment transactions with this customer/vendor if you do not specify a payment method in the item to be paid.
If you do specify a particular payment method in the item to be paid, this specification has priority over the specifications in the master record. You may also specify payment methods in the item which are not listed in the master record.
This field notifies that whether the vendor payment is to be made in cash, by cheque, bank draft etc.
Maybe you are looking for
-
How can I get my 25 pounds back. It's been stolen from my itunes account to buy KingdomConquest stuff. I' ve been hacked via itunes - I had a prepaid card in there. I work in it, am very careful, and this is the first time since 1985 when i starter u
-
hello, we have 3 server sharepoint 2010 farm as a live system and a 1 server for development and test system. I've got a problem with one of our portals that gives correlation ID (in 2 or 3 times a week) on all my dataview web parts (total 8 Dataview
-
PDFmaker add-in works in Word 2013, but not in PowerPoint 2013
Windows 7 64-bit Office H&B 2013 fully updated Acrobat XI 11.0.07 PDFmaker add-in used work perfectly in Word and PowerPoint, but lately it hangs on the "Publishing" step when used in PowerPoint. I cannot pinpoint when the error started, but it's ve
-
BAPI_PO_CRETE1:No instance of object type PurchaseOrder has been created
Hi All, It's very urgent,can u plz guide me how to use <b>BAPI_PO_CRETE1</b> I am getting the folowing errorrs while creating,<b>esp the error 1</b> can u plz guide me what are all the parameters to to pass to suppress this error <b>1. No instance of
-
Smart View Shared Connections - Oracle Essbase - How is list derived?
Testing out the new build of Smart view 11.1.2.2.310 on Office Excel 2010. In Shared connections I show three Essbase servers EssbaseCluster-1 EssbaseCluster-2 EssbaseCluster-3 Via EAS there is only EssbaseCluster-3. What file or lookup is Shared C