SAP: IDES ECC6 [EHP5] – disable devaccess check
The proper solution is to register for a Developer access key from SAP, but in cases when you can’t do that there’s always a work-around.
I’ve set up a personal IDES system on my home computer and ran in to this problem. Debugging the code I’ve identified that the function that performs the checks is DEVELOPER_KEY_CHECK.
The FM is very small, looks like this:
CALL ’CHECK_DEVELOPER_KEY’ ID ’KEY’ FIELD DEVELOPKEY.
CASE SY-SUBRC.
WHEN 1.
RAISE PARAMETERS_WRONG.
WHEN 2.
RAISE WRONG_KEY.
ENDCASE.
The hack/crack is to change the code to overwrite the OS command that returns 1 or 2.
Modification of the source SAP code is also tricky, you need to log in using user SAP, go to the FM DEVELOPER_KEY_CHECK – click change, using the debugger make sure the change can be allowed [update the sy-subrc to 0 when applicable] and add something like COMMIT WORK statement after the OS call which will overwrite the SY-SUBRC value to 0.
SAP: ALV grid Field Catalog [ref_table] SAPLSKBH & [source code of program " "] error
I’ve came across a strange error that occurred while building an SAP ALV grid. After calling the create_dynamic_table method of the CL_ALV_TABLE_CREATE object the program throws a hard error complaining about a blank program call in SAPLSKBH .
After spending some time debugging I’ve identified that based on custom reference table parameters the source 4.6C SAP code attempts to generate a dynamic program using a GENERATE REPORT prog call. When the attempt fails instead of returning a corresponding error message the algorithm throws an error about a blank program pointer that failed to be created.
Here’s the problematic code – while debugging examining the l_message parameter will identify the true cause of the failure.
catch system-exceptions generate_subpool_dir_full = 9.
generate subroutine pool lt_source name l_name
message l_message line l_line word l_word.
endcatch.
case sy-subrc.
when 0.
when 9.
raise generate_subpool_dir_full.
when others.
message x000(0k) with l_message l_line l_word.
endcase.
SAP: EDI: Conversion of External Tax Rate
T076M is a standard SAP table available within R/3 SAP systems depending on your version and release level. Below is the standard documentation available for this table and a few details of the fields which make up this table.
Transaction: OBCD can be used to maintain the contents.
MXML: “true && true” error
Stumbled across this strange error while doing some development. I’ve needed to determine the enable function of a button based on two boolean conditions and as a result created the following bit of code:
<com:Component enabled=”{booleanA && booleanB}”/>
The compiler didn’t like what I’ve put together and threw the following error: The entity name must immediately follow the ‘&’ in the entity reference.
At first I litteraly thought that I’ve forgotten how to code and trivially tried a simple if statement in a <fx:Script> tag – that worked without a problem. I’ve also tried to see if the or ”||” operator worked within the enabled attribute – which it did. My last thought before searching for a solution online was that the latest version of Adobe Flex had a bug in it.
Some of the solution that I’ve discovered are:
- use ;& instead
- use (booleanA) ? (booleanB):false
- use !(!active1 || !active2)
SAP: Configuring a Trust Relationship for SAP Assertion Tickets
Some useful reading material about configuring trust relationships between different SAP instances.
http://help.sap.com/saphelp_nwpi71/helpdata/en/45/341a2176b74002e10000000a155369/content.htm
SAP: substitution/validation transactions
A quick and simple way to locate a validation/substitution rules can be achieved through the utilization of two transactions GGB0/GGB1 respectfully.
Within the transaction if accessed the menu panel Environment – Directory one can select the level of detail and display an entire collection of all the rules that exist in the system.
SAP: Payment Run: err – “overlap with payment run” – DB fix
I faced a problem while automating a payment run process, the log from the run spit out the following error message:
”
Log for payment run for payment on [Date], identification [PR#] Overlap with payment run [Date] [PR#A] ... the execution of the payment program is terminated
”
Some online digging has resulted in an identification of two different tables:
T042X: Company Codes Blocked by the Payment Program – this table contained an entry for the company code with which I was working.
REGUV: Control records for the payment program – this table contained records for each of the payment runs and specifically tracks the status of each in the field XECHT. The failed records that I’ve encountered has a value S where a blank would identify that a production run has not been carried out yet.
Fixing these two tables will set the runs in to the original state.
SAP: scan ABAP programs
Useful little program that can help you scan other SAP programs RPR_ABAP_SOURCE_SCAN.
SAP: prompt user for a job-name when scheduling program in the background using SE38
When you want to execute a standard program and run it in the background typically SAP will name the job with the same identification as the program name.
To compensate for this behaviour you can implement a badi [JOB_NAME_SELF] . Import parameters will include program name and export parameters will contain jobname.
To make the process more flexible you can enhance the functionality by prompting the user to populate the actual program name, here’s how you can accomplish that:
SAP: substitution rule exclude fields
Changing a value in a substitution rule might be perhibited based on the configurations in the GB01 table.