gulf review tracker 20160120.xlsx

24
SL No CR Num Review Date Review Type Status 1 840 25-Nov TS Closed 2 840 25-Nov TS Closed 3 856 1-Dec TS Closed 4 856 1-Dec TS Closed 5 856 1-Dec TS Closed 6 849 8-Dec TS Closed 7 849 8-Dec TS Closed 8 849 8-Dec TS Closed 9 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

Upload: sreedharvnm

Post on 11-Jul-2016

225 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Gulf Review Tracker 20160120.xlsx

SL No CR Num Review DateReview Type Status

1 840 25-Nov TS Closed

2 840 25-Nov TS Closed

3 856 1-Dec TS Closed

4 856 1-Dec TS Closed

5 856 1-Dec TS Closed

6 849 8-Dec TS Closed

7 849 8-Dec TS Closed

8 849 8-Dec TS Closed

9 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

Page 2: Gulf Review Tracker 20160120.xlsx

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

Page 3: Gulf Review Tracker 20160120.xlsx

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

Page 4: Gulf Review Tracker 20160120.xlsx

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

Page 5: Gulf Review Tracker 20160120.xlsx

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

Page 6: Gulf Review Tracker 20160120.xlsx

927 25-Jan Code Open

927 25-Jan Code Open

927 25-Jan Code Open

Page 7: Gulf Review Tracker 20160120.xlsx

Program nane / WD component / Method

Page 8: Gulf Review Tracker 20160120.xlsx

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

Page 9: Gulf Review Tracker 20160120.xlsx

ZETH_SO_STORAGE_LOC_PICK

ZEVN_SO_ITM_SLOC_PICK

ZIVN_SAVE_SO_VN

MAIN-->SAVE_SO_VN

ZCLPH_UPLOAD_SALES_ORDER-->VALIDATE_INPUTS

IF_BADI_SLS_LO_OIF_GUIBB_LIST~FPM_GET_DEFINITION

Page 10: Gulf Review Tracker 20160120.xlsx

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

Page 11: Gulf Review Tracker 20160120.xlsx

ZIAE_OUT_PROCESS_CLASS_IMPL

ZIAE_OUT_PROCESS_CLASS_IMPL

ZRAE_GATE_PASS_PRINT

ZRAE_GATE_PASS_PRINT

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_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

ZCLAE_UPLD_ALLOC_ASSIST-->SEP_MULTPL_INV

ZCLAE_UPLD_ALLOC_ASSIST-->SEP_SINGLE_INV

Page 12: Gulf Review Tracker 20160120.xlsx

ZFMAE_CUST_CLEAR_BDC

ZFMAE_CUST_CLEAR_BDC

ZFMAE_CUST_CLEAR_BDC

Page 13: Gulf Review Tracker 20160120.xlsx

Reviewer Comments

Do not you think we need to have Sale Org as one the input .

How should output look in case of multiple documents are selected ,

In Technical Processing Section it says Vendor Aging Report but the requirements seems to be about Product Master

This class seems to be existing already . Can clear mention this as Reuse object

If the coding is done per detailed logic the report will never run .The logic given is " Get all records with fields Sales Document (VBELN) and Outlet code(KUNNR) from the table VBPA based on selection criteria Outlet code(KUNNR), Salesman Number (PERNR)and VBPA- PARVW = ‘PE’."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

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 (SY-DATUM), 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 VBAP-VSTEL 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

Page 14: Gulf Review Tracker 20160120.xlsx

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

Page 15: Gulf Review Tracker 20160120.xlsx

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

Page 16: Gulf Review Tracker 20160120.xlsx

In the read statement , binary search can be used .

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

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

Page 17: Gulf Review Tracker 20160120.xlsx

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

Page 18: Gulf Review Tracker 20160120.xlsx

Can more comments be put in the code specifying why BDC was done.

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 .

Page 19: Gulf Review Tracker 20160120.xlsx

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.

Page 20: Gulf Review Tracker 20160120.xlsx

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

Page 21: Gulf Review Tracker 20160120.xlsx

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.

Page 22: Gulf Review Tracker 20160120.xlsx

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

Page 23: Gulf Review Tracker 20160120.xlsx
Page 24: Gulf Review Tracker 20160120.xlsx