on 07-30-2011 7:56 AM
Dear Friends,
After creating new customer we create credit control area of that customer using FD32.
But its taking too much time. can you please exaplain why its taking too much time or how
can we avoid this long time process.
Regards
Malik
Hi,
Correction instruction based on note :
...
CALL FUNCTION 'CREDITLIMIT_CHANGE' IN UPDATE TASK
EXPORTING
I_KNKA = KNKA
I_KNKK = KNKK
UPD_KNKA = UPD_KNKA
UPD_KNKK = UPD_KNKK
YKNKA = YKNKA
YKNKK = YKNKK
XNEUA = KLIM-XNEUA
XREFL = KLIM-XREFL.
IF KLIM-XNEUA NE SPACE. "K11K100791
*>>>> START OF DELETION <<<<<
Bei Auftreten des Laufzeitfehlers 'TIME_OUT' sind die ausgesternten
Zeilen zu aktivieren (vgl. Hinweis 99937)
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
IF SY-BINPT = 'X'. "n1293818
SD_CREDIT_RECREATE cannot be started in batch input
RFDKLI20 should be called instead
IF T014N-KKBER IS INITIAL.
T014N-KKBER = KNKK-KKBER.
INSERT INTO T014N VALUES T014N.
ENDIF.
MESSAGE S778 WITH KNKK-KKBER.
ELSE.
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
*----- Inform SD_CREDIT_RECREATE that a INSERT OCCURS -
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
"K11K100791
EXPORTING
"K11K100791
AFTER_CHANGE_KNKLI = 'X'
"K11K100791
AFTER_CHANGE_TVAP_TVLP = 'X'
"K11K100791
KKBER = KNKK-KKBER
"K11K100791
KUNNR = KNKK-KUNNR
"K11K100791
PROTOCOL = ' '
"K11K100791
RECHECK_DOCUMENTS = 'X'
"K11K100791
SET_COMMIT = 'X'
"K11K100791
TKNKK = KNKK.
"K11K100791
ENDIF.
ELSEIF KNKK-KNKLI NE YKNKK-KNKLI "K11K100791
AND UPD_KNKK NE 'I'. "K11K100791
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
CALL FUNCTION 'SD_CREDIT_RECREATE' "K11K100791
EXPORTING "K11K100791
AFTER_CHANGE_KNKLI = 'X' "K11K100791
AFTER_CHANGE_TVAP_TVLP = ' ' "K11K100791
KKBER = KNKK-KKBER "K11K100791
KUNNR = KNKK-KUNNR "K11K100791
PROTOCOL = ' ' "K11K100791
RECHECK_DOCUMENTS = 'X' "K11K100791
SET_COMMIT = 'X' "K11K100791
TKNKK = KNKK. "K11K100791
ENDIF.
*>>>> END OF DELETION <<<<<<<
*>>>> START OF INSERTION <<<<
*----- Batch-Input?
IF SY-BINPT = SPACE.
*..... no, send popup
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
*----- Inform SD_CREDIT_RECREATE that a INSERT OCCURS -
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
EXPORTING
AFTER_CHANGE_KNKLI = 'X'
AFTER_CHANGE_TVAP_TVLP = 'X'
KKBER = KNKK-KKBER
KUNNR = KNKK-KUNNR
PROTOCOL = ' '
RECHECK_DOCUMENTS = 'X'
SET_COMMIT = 'X'
TKNKK = KNKK.
ENDIF.
ELSE.
yes, Batch Input
SD_CREDIT_RECREATE cannot be started in batch input
RFDKLI20 should be called instead
IF T014N-KKBER IS INITIAL.
T014N-KKBER = KNKK-KKBER.
INSERT INTO T014N VALUES T014N.
ENDIF.
MESSAGE S778 WITH KNKK-KKBER.
ENDIF.
ELSEIF KNKK-KNKLI NE YKNKK-KNKLI "K11K100791
AND UPD_KNKK NE 'I'. "K11K100791
*----- Batch-Input?
IF SY-BINPT = SPACE.
*----- No, send popup
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
*----- Inform SD_CREDIT_RECREATE that a INSERT OCCURS -
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
EXPORTING
AFTER_CHANGE_KNKLI = 'X'
AFTER_CHANGE_TVAP_TVLP = ' '
KKBER = KNKK-KKBER
KUNNR = KNKK-KUNNR
PROTOCOL = ' '
RECHECK_DOCUMENTS = 'X'
SET_COMMIT = 'X'
TKNKK = KNKK.
ENDIF.
ELSE.
yes, Batch Input: update directly without popup
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
Inform SD_CREDIT_RECREATE that a INSERT OCCURS
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
EXPORTING
AFTER_CHANGE_KNKLI = 'X'
AFTER_CHANGE_TVAP_TVLP = ' '
KKBER = KNKK-KKBER
KUNNR = KNKK-KUNNR
PROTOCOL = ' '
RECHECK_DOCUMENTS = 'X'
SET_COMMIT = 'X'
TKNKK = KNKK.
ENDIF.
*>>>> END OF INSERTION <<<<<<
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
One reason may be due to missing partner index for the payer (table TINPA) for group 'Transaction = '0' (sales orders)'.
Solution There must be a partner index for the payer for group 'Transaction = '0' (sales orders), OR else a database secondary index for table VBPA for f the following two options:
1. Enter retroactively a partner index in table TINPA:
a) In table TINPA, add an entry with group 'Transaction = '0' and partner funnction = 'RG'.
b) Reorganize the partner index, otherwise the system finds in the index table (VAKPA) only documents which were created or changed after the entry has no effect! Carry out the reorganization of the partner index using report RVV05IVB. You should run RVV05IVB in prod in off hours
c) A database secondary index for table VBPA is NOT required here!
2. As an alternative to point 1, you can forego the entry in table TINPA and set up a database secondary index for table VBPA for fields MANDT, KUN the size of table VBPA. Also refer to Note 705317 - Performance credit master data (FD32) and RFDKLI20
Also see whether the for the following note Note 99937 - Credit management: runtime error 'TIME_OUT' Correction Instruction
289775 Valid from Valid 470 606 to Software Component Last Modifcation SAP_APPL 23.02.2011 10:02:06 See SAP has modified the code on 23.02.2011 So see the correction instruction. Program ID Object Type Object Name Program ID Object Type Object Name LIMU REPS MF02CFS0 R3TR PROG MF02CFS0
Regards,
Saju.S
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Dear Saju,
I am going with following approach which you mentioned
1. Enter retroactively a partner index in table TINPA:
a) In table TINPA, add an entry with group 'Transaction = '0' and partner funnction = 'RG'.
But its taking too much time. from previous 24 hours its running in backgroud and till now now i dea.
so its difficult to do in production system.. becuase for this we need time so no body can put any entry in this table.
What you suggest.
Regards
Malik
Hi,
One reason may be due to missing partner index for the payer (table TINPA) for group 'Transaction = '0' (sales orders)'.
Solution
There must be a partner index for the payer for group 'Transaction = '0' (sales orders), OR else a database secondary index for table VBPA for f the following two options:
1. Enter retroactively a partner index in table TINPA:
a) In table TINPA, add an entry with group 'Transaction = '0' and partner funnction = 'RG'.
b) Reorganize the partner index, otherwise the system finds in the index table (VAKPA) only documents which were created or changed after the entry has no effect! Carry out the reorganization of the partner index using report RVV05IVB. You should run RVV05IVB in prod in off hours
c) A database secondary index for table VBPA is NOT required here!
2. As an alternative to point 1, you can forego the entry in table TINPA and set up a database secondary index for table VBPA for fields MANDT, KUN the size of table VBPA.
Also refer to Note 705317 - Performance credit master data (FD32) and RFDKLI20
Also see whether the for the following note Note 99937 - Credit management: runtime error 'TIME_OUT'
Correction
Instruction 289775
Valid
from Valid 470 606
to Software
Component
Last
Modifcation SAP_APPL 23.02.2011 10:02:06
See SAP has modified the code on 23.02.2011 So see the correction instruction.
Program ID Object Type Object Name Program ID Object Type Object Name
LIMU REPS MF02CFS0 R3TR PROG MF02CFS0
See whether the below corrections are there in your code:
...
CALL FUNCTION 'CREDITLIMIT_CHANGE' IN UPDATE TASK
EXPORTING
I_KNKA = KNKA
I_KNKK = KNKK
UPD_KNKA = UPD_KNKA
UPD_KNKK = UPD_KNKK
YKNKA = YKNKA
YKNKK = YKNKK
XNEUA = KLIM-XNEUA
XREFL = KLIM-XREFL.
IF KLIM-XNEUA NE SPACE. "K11K100791
*>>>> START OF DELETION <<<<<
Bei Auftreten des Laufzeitfehlers 'TIME_OUT' sind die ausgesternten
Zeilen zu aktivieren (vgl. Hinweis 99937)
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
IF SY-BINPT = 'X'. "n1293818
SD_CREDIT_RECREATE cannot be started in batch input
RFDKLI20 should be called instead
IF T014N-KKBER IS INITIAL.
T014N-KKBER = KNKK-KKBER.
INSERT INTO T014N VALUES T014N.
ENDIF.
MESSAGE S778 WITH KNKK-KKBER.
ELSE.
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
*----- Inform SD_CREDIT_RECREATE that a INSERT OCCURS -
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
"K11K100791
EXPORTING
"K11K100791
AFTER_CHANGE_KNKLI = 'X'
"K11K100791
AFTER_CHANGE_TVAP_TVLP = 'X'
"K11K100791
KKBER = KNKK-KKBER
"K11K100791
KUNNR = KNKK-KUNNR
"K11K100791
PROTOCOL = ' '
"K11K100791
RECHECK_DOCUMENTS = 'X'
"K11K100791
SET_COMMIT = 'X'
"K11K100791
TKNKK = KNKK.
"K11K100791
ENDIF.
ELSEIF KNKK-KNKLI NE YKNKK-KNKLI "K11K100791
AND UPD_KNKK NE 'I'. "K11K100791
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
CALL FUNCTION 'SD_CREDIT_RECREATE' "K11K100791
EXPORTING "K11K100791
AFTER_CHANGE_KNKLI = 'X' "K11K100791
AFTER_CHANGE_TVAP_TVLP = ' ' "K11K100791
KKBER = KNKK-KKBER "K11K100791
KUNNR = KNKK-KUNNR "K11K100791
PROTOCOL = ' ' "K11K100791
RECHECK_DOCUMENTS = 'X' "K11K100791
SET_COMMIT = 'X' "K11K100791
TKNKK = KNKK. "K11K100791
ENDIF.
*>>>> END OF DELETION <<<<<<<
*>>>> START OF INSERTION <<<<
*----- Batch-Input?
IF SY-BINPT = SPACE.
*..... no, send popup
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
*----- Inform SD_CREDIT_RECREATE that a INSERT OCCURS -
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
EXPORTING
AFTER_CHANGE_KNKLI = 'X'
AFTER_CHANGE_TVAP_TVLP = 'X'
KKBER = KNKK-KKBER
KUNNR = KNKK-KUNNR
PROTOCOL = ' '
RECHECK_DOCUMENTS = 'X'
SET_COMMIT = 'X'
TKNKK = KNKK.
ENDIF.
ELSE.
yes, Batch Input
SD_CREDIT_RECREATE cannot be started in batch input
RFDKLI20 should be called instead
IF T014N-KKBER IS INITIAL.
T014N-KKBER = KNKK-KKBER.
INSERT INTO T014N VALUES T014N.
ENDIF.
MESSAGE S778 WITH KNKK-KKBER.
ENDIF.
ELSEIF KNKK-KNKLI NE YKNKK-KNKLI "K11K100791
AND UPD_KNKK NE 'I'. "K11K100791
*----- Batch-Input?
IF SY-BINPT = SPACE.
*----- No, send popup
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DEFAULTOPTION = 'Y'
DIAGNOSETEXT1 = TEXT-101
DIAGNOSETEXT2 = TEXT-102
DIAGNOSETEXT3 = ' '
TEXTLINE1 = TEXT-100
TITEL = ' '
CANCEL_DISPLAY = ' '
IMPORTING
ANSWER = ANSWER.
IF ANSWER = 'J'.
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
*----- Inform SD_CREDIT_RECREATE that a INSERT OCCURS -
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
EXPORTING
AFTER_CHANGE_KNKLI = 'X'
AFTER_CHANGE_TVAP_TVLP = ' '
KKBER = KNKK-KKBER
KUNNR = KNKK-KUNNR
PROTOCOL = ' '
RECHECK_DOCUMENTS = 'X'
SET_COMMIT = 'X'
TKNKK = KNKK.
ENDIF.
ELSE.
yes, Batch Input: update directly without popup
IF UPD_KNKK = 'I' OR UPD_KNKK = 'U'.
Inform SD_CREDIT_RECREATE that a INSERT OCCURS
EXPORT UPD_KNKK TO MEMORY ID '&FD32%'.
ENDIF.
CALL FUNCTION 'SD_CREDIT_RECREATE'
EXPORTING
AFTER_CHANGE_KNKLI = 'X'
AFTER_CHANGE_TVAP_TVLP = ' '
KKBER = KNKK-KKBER
KUNNR = KNKK-KUNNR
PROTOCOL = ' '
RECHECK_DOCUMENTS = 'X'
SET_COMMIT = 'X'
TKNKK = KNKK.
ENDIF.
*>>>> END OF INSERTION <<<<<<
...
Hope this will help you.
Regards,
Saju.S
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Dear Malik,
With the help of Basis team, please run performance trace.
You will understand why system is taking time.
Thanks & Regards,
Hegal K Charles
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
One thing which i want to mention.
We have lot of records and i know that when we are going to create credit limit
it will check the sales system and Accounts receiables for making credit exposure
for that particular customer.
But my question is when this customer is new then why its going to check
sales and AR system.
Any help highly Appriciated.
Regards
Naeem
User | Count |
---|---|
95 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.