note 48121 - user exits in validations substitutions

5
22.07.2013 Page 1 of 5 SAP Note 48121 - User Exits in Validations/Substitutions Note Language: English Version: 35 Validity: Valid Since 20.04.2001 Summary Symptom a) You receive the runtime error PERFORM_NOT_FOUND. b) You receive the runtime error PERFORM_CONFLICT_TYPE. c) You have problems creating a user exit or using it in a condition. Additional key words PERFORM_NOT_FOUND, ZGGBS, ZGGBR, RGGBS, RGGBR, user exit, exit, validation, substitution, PERFORM_CONFLICT_TYPE, client copy, GB555, GB007, GB027, GB303, GB306, GB308, GB072, GB073 Cause and prerequisites Sources of error: 1. You did not enter the formpool of the user exits in the table provided for this (table T80U up to and including Release 3.0B, table T80D as of Release 3.0C). 2. You defined the user exit with incorrect parameters. 3. You did not use one of the sample formpools delivered by SAP (RGBBS000 for subsitution exits, RGGBR000 for validation exits) as a reference for your own formpool. Therefore either you a) do not have the necessary FORM routine GET_EXIT_TITLES in your program b) or have the FORM routine GET_EXIT_TITLES, but have forgotten to enter your user exit there, or 4. you have used a formpool delivered by SAP as the reference for your own formpool but the SAP formpool is from a Release < 3.0. Due to the extension of the user exit name to 5 characters, the field NAME in the internal table EXITS must also be 5 characters long (in Releases < 3.0 it is 4 characters). 5. You carried out a system transport and the formpool for your user exits in your source system had a local private development class. Therefore, it was not transported and is now missing in the target system. 6. Due to a program error in Releases 4.0A up to and including 4.5A, you cannot use an exit of type (EXITS-PARAM) C_EXIT_PARAM_NONE in the condition of a matrix validation or matrix substitution. Also pay attention to the following: o In an exit, popups, warning or information messages or "COMMIT WORK" must not be issued. This would interrupt batch processing. If you find a severe error in the field contents in the exit, you should issue a termination message (A or X) which safely terminates

Upload: muralichittem

Post on 23-Dec-2015

714 views

Category:

Documents


16 download

DESCRIPTION

Note 48121 - User Exits in Validations Substitutions

TRANSCRIPT

Page 1: Note 48121 - User Exits in Validations Substitutions

22.07.2013 Page 1 of 5

SAP Note 48121 - User Exits in Validations/Substitutions

Note Language: English Version: 35 Validity: Valid Since 20.04.2001

Summary

Symptom

a) You receive the runtime error PERFORM_NOT_FOUND.

b) You receive the runtime error PERFORM_CONFLICT_TYPE.

c) You have problems creating a user exit or using it in a condition.

Additional key wordsPERFORM_NOT_FOUND, ZGGBS, ZGGBR, RGGBS, RGGBR, user exit, exit, validation,substitution, PERFORM_CONFLICT_TYPE, client copy, GB555, GB007, GB027,GB303, GB306, GB308, GB072, GB073

Cause and prerequisitesSources of error:

1. You did not enter the formpool of the user exits in the table providedfor this (table T80U up to and including Release 3.0B, table T80D asof Release 3.0C).

2. You defined the user exit with incorrect parameters.

3. You did not use one of the sample formpools delivered by SAP (RGBBS000for subsitution exits, RGGBR000 for validation exits) as a referencefor your own formpool. Therefore either you

a) do not have the necessary FORM routine GET_EXIT_TITLES in yourprogram

b) or have the FORM routine GET_EXIT_TITLES, but have forgotten toenter your user exit there, or

4. you have used a formpool delivered by SAP as the reference for yourown formpool but the SAP formpool is from a Release < 3.0. Due to theextension of the user exit name to 5 characters, the field NAME in theinternal table EXITS must also be 5 characters long (in Releases < 3.0it is 4 characters).

5. You carried out a system transport and the formpool for your userexits in your source system had a local private development class.Therefore, it was not transported and is now missing in the targetsystem.

6. Due to a program error in Releases 4.0A up to and including 4.5A, youcannot use an exit of type (EXITS-PARAM) C_EXIT_PARAM_NONE in thecondition of a matrix validation or matrix substitution.

Also pay attention to the following:

o In an exit, popups, warning or information messages or "COMMITWORK" must not be issued. This would interrupt batch processing. Ifyou find a severe error in the field contents in the exit, youshould issue a termination message (A or X) which safely terminates

Page 2: Note 48121 - User Exits in Validations Substitutions

22.07.2013 Page 2 of 5

SAP Note 48121 - User Exits in Validations/Substitutions

the transaction.

o Do not use ABAP statements causing the immediate quit of the exit,such as 'LEAVE (TO) SCREEN ...' or 'SUBMIT <REPORT> ...' or 'CALLTRANSACTION ...'.

o An exit used in logical expressions ALWAYS has to assign the value'T' (B_TRUE) or 'F' (B_FALSE) to the parameter B_RESULT. Forinstance this also has to happen if the structures used in the exitare empty. Otherwise the system may generate error message GB038"Exit & does not exist", GB072 "Validation/substitution/rulegeneration initiated" and/or GB073 "Generation successful, but youmust call up the function again" during simulation or posting.

o In an exit, only use structure fields belonging to the Booleanclass of the calling substitution, validation or rule. At the timeof calling the substitution, validation or rule other structurefields are not filled with useful values or not filled at all.

o Changes to field contents are only allowed in a substitution exit,and only if the substitution of this field is allowed in theBoolean class. You can display these fields by choosing the "Newentries" function in the Substitution Maintenance.

Solution

First read the documentation on the subject User exit in the applicationFI-SL (Special Purpose Ledger), previously FI-GLX. You can also obtain moreinformation using the F1 help within validation/substitution maintenance bypositioning the cursor on a line of a rule and pressing F1.Should one of the above cases occur, then correct it as follows (sequenceas above):

1. Enter the formpool for your user exits in table T80D (or T80U forReleases prior to 3.0C). For this, you can use the menu option <BasicSettings -> User Exits -> Maintain Client-Dependent User Exits> in theSpecial Purpose Ledger configuration menu. If this menu option is notyet available in your Release, you can also make the entries in thetable using the general table maintenance (Transaction SM31).

Note:

Do not create new application areas but enter the required formpoolinstead of the formpool entered by SAP for the respectiveapplication area (GBLR for user exits that are used in a logicalexpression; GBLS for user exits that are used for the replacementof fields in the substitution).

2. Define your user exit in the FORM routine GET_EXIT_TITLES with thecorrect exit type (EXITS-PARAM). You can use the available exampleentries as a reference to do this. There is more information below.

3. Use the reference formpools from SAP as a model for your ownformpools. For this, copy these formpools and insert the user exitsrequired. Prior to this implement the source code corrections in formroutine U102 in the reference formpool RGGBS000 provided you haveimplemented the correction described in Note 76872.

Page 3: Note 48121 - User Exits in Validations Substitutions

22.07.2013 Page 3 of 5

SAP Note 48121 - User Exits in Validations/Substitutions

Note

Enter this formpool in the table mentioned above and specify youruser exit in the FORM routine GET_EXIT_TITLES in any case(equivalent to the sample exits).

4. Change the field NAME in the internal table EXITS within the FORMroutine GET_EXIT_TITLES as follows:* NAME(4) TYPE C, "OLD NAME(5) TYPE C, "NEW

5. Manually transport the formpool in question from your source systeminto your target system. As of Release 3.1H, the system shouldgenerate a warning message when transporting a validation,substitution or rule or if the transport calls a user exit. Owing to aprogram error in Releases 3.1H up to and including 4.5A, thesefunctions are not contained in the standard system. If you use one ofthese releases, additionally implement the attached correction forInclude MGTRAF02.

6. Implement the attached advance correction into Include LGBLOU43.

Exit type definition:The exit types required in the FORM routine GET_EXIT_TITLES are divided asfollows:

o C_EXIT_PARAM_NONE No parameter

You do not need any parameters except the return value (B_TRUEor B_FALSE) for the validation. Use this parameter for thesubsitution if you do not want to substitute only one fieldexplicitly (selection "Exit only"). However, you then have makethe structure in question known by means of a TABLE statementin the formpool (and not in the form itself).

o C_EXIT_PARAM_FIELD A field is transferred as parameter

You use this category only in the substitution. Exactly onefield is substituted. You enter user exits of this category inthe substitution maintenance instead of assigning a constantvalue.

o C_EXIT_PARAM_CLASS An entire category is transferred as parameter

Matrix validations/substitutions "Exit only"). This exitcategory can only be used with the points in time with completedocuments e.g. in FI and LC. You cannot use this exit at allthe other points in time. The transferred category contains theentire information of a class. An example is the usage of thedocument header and all the corresponding line items in the FIapplication.

Note:Follow the sequence below when defining a user exit.

1. Define your user exit

Page 4: Note 48121 - User Exits in Validations Substitutions

22.07.2013 Page 4 of 5

SAP Note 48121 - User Exits in Validations/Substitutions

2. Make the entry for your formpool in table T80D

3. Enter the user exit in your validation definition.

Please note: The various advance corrections are included in the HotPackage SAPKH40B10.

Header Data

Release Status: Released for CustomerReleased on: 19.04.2001 22:00:00Master Language: GermanPriority: Recommendations/additional infoCategory: ConsultingPrimary Component: FI-SL-VSR Validation, Substitution and Rules

The Note is release-independent

Related Notes

Number Short Text

1439319 Account-based doc. missing for GI for stock transport order

413956 Complete document / matrix validation, -substitution

315592 Substitutn/validatn w/field FIPOS (commitment item)

200127 MR01: Substitution/validation callup point 2

178573 Activation of validations

167042 Validatn exit pool name may not exceed 8 characters

158739 Validation when parking documents in FI

154918 "USING","TABLES" or "CHANGING" expctd aft. "FOUND"

124745 Invoice verification:Transfer of PO text to CO doc

123218 Validation/substitution BSEG-VBUND FI callup point 2

95516 Problems with matrix validations/substitutions

77268 Conversion of sub-fields not correct

76872 Substitutions in FI at callup point 3

68303 Proj.int.calc.: add. acc.assignm. for offset. entry

27537 FI-SL:termination due to missing exit programs

Correction Instructions

Page 5: Note 48121 - User Exits in Validations Substitutions

22.07.2013 Page 5 of 5

SAP Note 48121 - User Exits in Validations/Substitutions

CorrectionInstructions

Validfrom

Validto

SoftwareComponent

Type*)

ReferenceCorrection

LastChanged

4299 300 31G SAP_APPL C ALRK137434 06.03.199909:39:40

4300 31H 31I SAP_APPL C ALRK137434 06.03.199909:39:40

4301 40A 45A SAP_APPL C ALRK137434 06.03.199909:39:40

*) C Correction, B Preprocessing, A Postprocessing, M Undefined Work