Anda di halaman 1dari 24

SL No

CR Num

Review DateReview Type Status

840

25-Nov TS

Closed

840

25-Nov TS

Closed

856

1-Dec TS

Closed

856

1-Dec TS

Closed

856

1-Dec TS

Closed

849

8-Dec TS

Closed

849

8-Dec TS

Closed

849

8-Dec TS

Closed

862

8-Dec TS

Closed

10

862

8-Dec TS

Closed

11

862

8-Dec TS

Closed

12

862

8-Dec TS

Closed

13

862

8-Dec TS

Closed

14

848

8-Dec TS

Closed

15

856

16-Dec Code

Closed

15

856

16-Dec Code

Closed

15

856

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Closed

847

16-Dec Code

Open

847

22-Dec Code

Closed

847

22-Dec Code

Closed

847

22-Dec Code

Open

849

24-Dec Code

Closed

842

24-Dec Code

Closed

842

24-Dec Code

Closed

842

24-Dec Code

Closed

845

24-Dec Code

Closed

845

24-Dec Code

Closed

845

24-Dec Code

Closed

845

24-Dec Code

Closed

845

24-Dec Code

Closed

11-Jan Code

Open

11-Jan Code

Open

11-Jan Code

Open

11-Jan Code

Open

11-Jan Code

Open

11-Jan Code

Open

11-Jan Code

Open

11-Jan Code

Open

862

20-Jan Code

Open

862

20-Jan Code

Open

862

20-Jan Code

Open

862

20-Jan Code

Open

862

21-Jan Code

Open

862

21-Jan Code

Open

927

25-Jan Code

Open

927

25-Jan Code

Open

927

25-Jan Code

Open

927

25-Jan Code

Open

927

25-Jan Code

Open

Program nane / WD component /


Method

ZCLAE_ASSIST_PENDING_LPO_QTY
-->FETCH_PENDING_LPO_QTY

ZCLAE_ASSIST_PENDING_LPO_QTY
-->FETCH_PENDING_LPO_QTY

ZCLAE_ASSIST_PENDING_LPO_QTY
-->FETCH_PENDING_LPO_QTY
ZCLPH_UPLOAD_SALES_ORDER->FILL_BAPIDATA

ZCLPH_UPLOAD_SALES_ORDER->FILL_BAPIDATA
ZCLPH_UPLOAD_SALES_ORDER->FILL_BAPIDATA
ZCLPH_UPLOAD_SALES_ORDER->VALIDATE_INPUTS

ZCLPH_UPLOAD_SALES_ORDER->VALIDATE_INPUTS

ZETH_SO_STORAGE_LOC_PICK

ZEVN_SO_ITM_SLOC_PICK

ZIVN_SAVE_SO_VN

MAIN-->SAVE_SO_VN
IF_BADI_SLS_LO_OIF_GUIBB_LIST~FPM
_GET_DEFINITION

Z_AE_SLOC_AUTO_DETERMINATION
ZCL_AE_CREATE_CUSTOMER->GET_ZTEMP_DATA
ZCL_AE_CREATE_CUSTOMER->CREATE_CHANGE_OUTLET
ZCL_AE_CREATE_CUSTOMER->CREATE_CHANGE_OUTLET
ZCLAE_INVENTORY_U2K2_ISR->GET_PLNTSTLOC_DETAILS

ZCLAE_INVENTORY_U2K2_ISR->GET_PLNTSTLOC_DETAILS
ZCLAE_INVENTORY_U2K2_ISR->GET_PLNTSTLOC_DETAILS

ZCLAE_INVENTORY_U2K2_ISR->DERIVE_BAPI_PARAM

ZII_SI_CUSTOMER_OPEN_ITEM_ISR~SI_
CUSTOMER_OPEN_ITEM_ISR_IN_A

ZII_SI_CUSTOMER_OPEN_ITEM_ISR~SI_
CUSTOMER_OPEN_ITEM_ISR_IN_A
ZII_SI_CUSTOMER_OPEN_ITEM_ISR~SI_
CUSTOMER_OPEN_ITEM_ISR_IN_A
zclae_cust_coll_utility=>post_account_
document

ZIAE_OUT_PROCESS_CLASS_IMPL

ZIAE_OUT_PROCESS_CLASS_IMPL
ZIAE_OB_PRCSS_FBRA_CLASS_IMPL /
ZIAE_OB_PRCS_FBZ1_CLASS_IMPL /
ZIAE_OB_PRCS_FB08
ZIAE_OB_PRCSS_FBRA_CLASS_IMPL /
ZIAE_OB_PRCS_FBZ1_CLASS_IMPL /
ZIAE_OB_PRCS_FB08

ZCLAE_PICK_LIST_ASSIST->GET_PICK_LIST_DETAILS
ZCLAE_PICK_LIST_ASSIST->GET_PICK_LIST_DETAILS
ZCLAE_PICK_LIST_ASSIST->GET_PICK_LIST_DETAILS
ZCLAE_PICK_LIST_ASSIST->GET_PICK_LIST_DETAILS

ZRAE_GATE_PASS_PRINT

ZRAE_GATE_PASS_PRINT
ZCLAE_UPLD_ALLOC_ASSIST->SEP_MULTPL_INV
ZCLAE_UPLD_ALLOC_ASSIST->SEP_SINGLE_INV

ZFMAE_CUST_CLEAR_BDC

ZFMAE_CUST_CLEAR_BDC
ZFMAE_CUST_CLEAR_BDC

If
the coding
is done per detailed logic the report will never run .The logic
Reviewer
Comments
given is " Get all records with fields Sales Document (VBELN) and
In Technical Processing Section it says Vendor Aging Report but the
Outlet code(KUNNR) from the table VBPA based on selection
requirements seems to be about Product Master
criteria Outlet code(KUNNR), Salesman Number (PERNR)and
This
class
seems=toPE."
be existing already . Can clear mention this as Reuse
VBPAPARVW
object
a.
VBPA is not right table to start the initial extract as the selection
criteria we are planning to pass Outlet & Sale Man are not key fields .
b. In VBPA table for a line item which has Sales Person value in PERNR ,
then KUNNR will be blank . So the first condition mentioned in the TS fails
and no further extraction will happen .
Ideally the initial data extract can happen from VBAK .There is index on
AUDAT and also AUDAT is a mandatory input field . Along with this the
two other inputs options Outlet and Cust PO also be passed . Based on
this initial extract data from VBAP and VBPA can be pulled out
We have made both Document date and Outlet code as mandatory. Date
is fine . But Outlet code as mandatory , if user want to run for multiple
outlets how will that be manage
Do not you think we need to have Sale Org as one the input .
There are three processess mentioned in the TS. Are they dependent or
independent processess . As of now all the three processess are being
shown as independent process
Are we creating interfaces for all the three processess .What kind of
interfaces will we be using
Consignment Issue :- It is mentioned "This interface is triggered after the
automatic PGI & Billing happens. i.e. at the end in the FM
Z_TH_DO_DELIVERY_PGI" How will this be triggered at the end of the FM
. Will it be output type , or will it be proxy or IDOC . Nothing has been
mentioned

Detail Program Logic - Step 1 Get delivery number (LIKP-VBELN) and


shipping point (LIKP- VSTEL) from LIKP table by passing the date (SYDATUM), shipping point (VBAP-VSTEL) entered in selection screen and
LIKP-WADAT = space (PGI already done).
Here --> To what feild should sy-datum be passed , to which feild VBAPVSTEL needs to be passed . Also WADAT = Space I am not sure if this
condition is correct
Detailed Program Logic : Step 3 --> LIKP-KUNNR gives us the ship to
party . Not sure why we need to go to VBPA to fetch the same
Step 7 , is not very clear . Let us say I choose print option and output has
multiple deliveries . What will happen . Again if I choose the select all
option what happens This step is not clear
What is the criteria to print the pick list , gate pass . There seems to be
no option to decide on the same
How should output look in case of multiple documents are selected ,

We have given lot of logic to data extract . IF we can check any of


standard SAP Invoice print program all this data can be extracted
RV_PRICE_PRINT_REFRESH & RV_BILLING_PRINT_VIEW . My suggestion is
that we copy one of the existing print program and make the appropriate
change in the print program . This even the billing inbox functionality will
also get captured .
The first select statement from VBAK & VBAP will fetch data for all site .
We have no restrictions based on the Sales Org in the query . Please
revisit this
Data extract from KNA1 is can be done in a different way . We are
extracting data based on VBAK / VBAP join . This will have data at line
item level , that means KUNNR would be repeated in the internal table .
Better way is to move data to a temp internal table . Sort by kunnr and
do delete adjacent duplicates . The use this internal table for KNA1
extract
In the code for Calculate Remaining quantity please provide more
comments . I am not able to understand why the code has been put as
IF ls_first_lpo_qty IS INITIAL.
ls_first_lpo_qty = ls_pending_lpo_qty.
ENDIF.
Please update the Modification log clearly with changes that is being
done

The FM Z_AE_SLOC_AUTO_DETERMINATION would be getting called in a


loop correct . That means all the select statement within this FM are
called as many times as the number of records in the upload file . Does it
not make sense have a internal table with feilds sales man code , site ,
article and Storage location . if the Site is AE site then check this internal
table for Sales Man code / Site / Storage Loc. If entry found get the
storage loc. Other wise call the FM get the details and populate the
internal table
From what I understand for AE Storage location is mandatory . I do see
any error handling on the same . What will happen if the FM returns Stor
Loc as blank
Please update the Modification log clearly with changes that is being
done

The FM Z_AE_SLOC_AUTO_DETERMINATION would be getting called in a


loop correct . That means all the select statement within this FM are
called as many times as the number of records in the upload file . Does it
not make sense have a internal table with feilds sales man code , site ,
article and Storage location . if the Site is AE site then check this internal
table for Sales Man code / Site / Storage Loc. If entry found get the
storage loc. Other wise call the FM get the details and populate the
internal table

We have put the same logic in both VALIDATE_INPUTS and FILL_BAPIDATA


methods .I feel the code is redundant . When we are validating the inputs
itself why not populate the internal table with the Stor Loc . That way in
FILL_BAPIDATA no change would be required .
Please update the Modification log clearly with changes that is being
done
Please update the Modification log clearly with changes that is being
done
The FM Z_AE_SLOC_AUTO_DETERMINATION is being called at two include
and both of them work for all the countries . First place is in in user exit
to move data to VBAP and other in save_document prepare . This is again
redundant code .I think the code should be only in one place . If the
requirement is just to have the Storage location populated then best
option would be Save_document_prepare
( ZETH_SO_STORAGE_LOC_PICK)
We are changing the code in the include which has so much of VN code
and promotions function modules. Will all this be applicable for Gulf . If
yes then fine , otherwise this may require some rework again
We are changing the code in the include which has so much of VN code .
Will all this be applicable for Gulf . If yes then fine , otherwise this may
require some rework again
Code is fine , but last time when this component was changed for each
and every action this same code was triggered multiple time leading to
drastic slowness . Can that be checked

This FM seems to be used multiple times in the class and the WD


component in a Loop . Have explored the possibility of putting this in one
place only . Is there any specific reason why this being
In code for READ TABLE gt_proxy_input can we not add the binary search
We are moving data from KNA1 into a ranges table . There is always
chance that if no of records are more this can give dump in the
subsequent statements . See if this can be changed

In the read statement , binary search can be used .


We have loop at it_item twice . Once to get the storage location . Second
time to get the articles . Why cannot the same be done in one loop .

We are getting data from MKPF passing LR_MBLNR and using for entries
for LT_BKTXT . I see no where LR_MBLNR getting populated . This will be a
potential performance issue
For BKTXT we are using the conversion exit . Is the data expected have
leading zero etc . If now do we really need to do the conversion exit
Not sure if this code is correct . Both for if and else condition we are
passing the same value
IF <fs_hdr_item>-posting_date IS NOT INITIAL.
ls_goodsmvt_header-pstng_date = sy-datum.
ELSE.
ls_goodsmvt_header-pstng_date = sy-datum.
ENDIF.

In method VALIDATE_INTERFACE_DATAwe populated internal table


et_hdr_item and the did check using some internal table etc . Again in
method DERIVE_BAPI_PARAM we are looping at the same internal table
and reading the same internal table to populate the BAPI stuctures . Is it
not better to have one final internal table in VALIDATE_INTERFACE_DATA .
Why should be have duplication of reads etc
I am sure lt_u2k2_item will have data to line item level . So why not
move this to a temp table do delete adjacent on BUKRS and get data
from U2K2 Org map

I am sure lt_u2k2_item will have data to line item level . So why not
move this to a temp table do delete adjacent on BUKRS BELNR GJAHR
and then data from BKPF .
To get data from KNB1 why not sort the data from of internal table first
and then do delete adjacent duplicate before data extraction .
To get data from KNB1 why not sort the data from of internal table first
and then do delete adjacent duplicate before data extraction .
When P_RB2 = X , can we change the sequence in the where clause . It
does not match that of the table key fields
When P_RB1 = X we are getting all records irrespective of the year and
company code for status = RTP . Will it not be good to have the company
code & Year as a input for this option . Tomorrow I few more company
come up it will pick up all
There are lot of loop within loop , while we have used parallel cursor
method , if the volume data is high this can cause potential problems
.Also there is lot of if endif also for data processing .This needs to be
relooked at .
When P_RB1 = X we are getting all records irrespective of the year and
company code for status = RTP . Will it not be good to have the company
code & Year as a input for this option . Tomorrow I few more company
come up it will pick up all
The Select statement from LIKP will cause performance problem .What is
the requirement here. Do you want all DO where PGI is not done . In that
case can you try the table SHP_IDX_GDSI whether this will help
Ship to party is already available in LIKP-KUNNR . Not sure why we need
to get it from VBPA . Can you revisit this code
We are getting data from MAKT passing articles picked from LIPS . The
articles can be duplciated . So better move to another internal table do
adjacent duplicates and the extract data
Same kind logic mentioned above can be applied for data extracted from
T001L , TVAP
How is data coming into NAST . Usually a output is configured and ther
the subroutine name is updated . Here is see NAST directly coming in the
method . I am not sure this will work . Please revisit
My suggestion is that in the method M_PROCESS_DATA , sort the internal
tables again. Reason for this say if somebody later creates a method
before this method does some sorting with different fields we will have
issues
I see read statement without binary search . Any specific reason binary
search was not done . If yes please put in some commenst
I see read statement without binary search . Any specific reason binary
search was not done . If yes please put in some commenst

This FM is being called within a loop and in the FM there are select
statements. That can impact the performance . Can we not put the data
befor ethe loop and then do the processing
If I am correct there could be lot of line items that would be processed .
SAP has a limitation on the number of line items / document . Hope that
is not getting breached or is under assumption .
Can more comments be put in the code specifying why BDC was done.

Project team Comments


Ram: Change has been done
Ram: Change has been done

Basu: (TS Updated): As per the review comments first we are


getting data from VBAK and VBAP tables based on selection
screen fields and then filtering from VBPA table using for all
entries from first step and also along with salesman from
selection screen
Basu:(TS Updated): Now we added Sales Org also in selection
screen and defaulted based on Site and now based on Sales Org
they can run for multiple outlets
Basu: (TS Updated): Now we added Sales Org in selection screen
and defaulted based on site value
Roopashree Bhat:(TS Updated): The TS is updated as per review
comments.
Roopashree Bhat:(TS Updated): The TS is updated as per review
comments.

Roopashree Bhat:(TS Updated): The TS is updated as per review


comments.

Basu:(TS Updated): The TS is updated as per review comments.

Basu:(TS Updated): The TS is updated as per review comments.

Basu:(TS Updated): The TS is updated as per review comments.


Basu:(TS Updated): The TS is updated as per review comments.
Basu:(TS Updated): The TS is updated as per review comments.

Basu: This is copied from standard SD print


program(SD_INVOICE_PRINT01) and added logic for additional
fields and Form modified accordingly
Basu: (Code Fixed): As per the review comments, now we added
Sales Org in selection screen and defaulted it to based on user
site value. code changed and updated.

Basu: (Code Fixed): As per review comments, moved data to


temp table sorted and deleted adjacent duplicates and updated
the code

Basu: (Code Fixed): As per review comments, comments are


added for calculating logic and updated.
Basu: (Code Fixed): As per review comments modification log
added with proper descriptions and updated

Basu: (Code Fixed): As per the review comments, created one


internal table and filling in VALIDATE_INPUTS method with SLOC
details along with Salesman, Article and Site and in
FILLBAPI_DATA method the same internal table is reading for
SLOC values instead of calling the same FM again for SLOC.
Basu: (Code Fixed): As per review comments error handled in
VALIDATE_INPUT method for blank SLOC values. Code
Basu: (Code Fixed): As per review comments modification log
added with proper descriptions and updated

Basu: (Code Fixed): As per the review comments, created one


internal table and filling in VALIDATE_INPUTS method with SLOC
details along with Salesman, Article and Site and in
FILLBAPI_DATA method the same internal table is reading for
SLOC values instead of calling the same FM again for SLOC.
Basu: (Code Fixed): As per the review comments, created one
internal table and filling in VALIDATE_INPUTS method with SLOC
details along with Salesman, Article and Site and in
FILLBAPI_DATA method the same internal table is reading for
SLOC values instead of calling the same FM again for SLOC.
Basu: (Code Fixed): As per review comments modification log
added with proper descriptions and updated
Basu: (Code Fixed): As per review comments modification log
added with proper descriptions and updated

Basu: work in progress


Basu: Yes all the existing code required for gulf as we areadopting
VN Solution and few new changes are required for Gulf hence no
re-work required. Also we use enhancement frame work for the
same.
Basu: This defect is related to 850 CR, Yes all these new changes
are required for Gulf hence no re-work required. Also we use
enhancement frame work for the same.
Basu: This defect is related to 850 CR, this will run only for gulf,
this logic is to get drop down value for Order Reason and no
impact on other country.

Roopashree Bhat: In the method, in the MAIN_VIEW method


POPULATE_MAT_DETAILS, the FM Z_AE_SLOC_AUTO_DETERMINATION is called to populate the
default Sloc whenver article is added in the item table. This
method will be called every time add item is clicked. In the
method, GET_VAN_ALLOC_DETAILS, the FM is called to get the
sloc(for a combination of salesman,site,article) and not based on
the article type. In the method, GET_STOCK_DETAILS, the FM is
called to fetch the default SLoc(for a combination of
salesman,site,article). This method is used to uplaod the file
contents to the Van stock allocation wd application.
Ram: Code change has been done
Ram: Before creating the range table, am checking that, do the
internal value contains data and also then am not filling the range
as from and to.
Ram: Am filling the range as equals only. So the range will contain
atleast one record always. Will it be fine for us. Please let me
know

Ram: Code change has been done


Ram: A blank range for MBLNR is being used in where clause as
part of primary key. BKTXT is not part of primary or secondary
index and to make the consitency check, am passing a blank
range. And also to avoid the Cast Tool check failure, I have
paused empty range.
Ram: Yes BKTXT requires Conversion exit for data fetching form
table

Ram: Changes done for Posting date validation

Ram: As part of business logic the validation part and Derivation


part are different

Anda mungkin juga menyukai