Archive for the ‘SAP/ABAP’ Category
You are currently browsing the archives for the SAP/ABAP category.
You are currently browsing the archives for the SAP/ABAP category.
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.
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.
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.
Some useful reading material about configuring trust relationships between different SAP instances.
http://help.sap.com/saphelp_nwpi71/helpdata/en/45/341a2176b74002e10000000a155369/content.htm
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.
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:
Changing a value in a substitution rule might be perhibited based on the configurations in the GB01 table.
Scenario: you’re editing your code and when you try to double click on a previously defined subroutine you get a popup stating that it doesn’t exist. You check and confirm that the subroutine is included, the report compiles and runs properly.
Resolution: to fix the problem do the following steps:
The report will be regenerated and your problem should be solved.
TR: SMARTFORMS – sap form builder – create and edit a smart form object
TR: SE63 – translate objects – can be used to translate smart form data to a different language
To transport text data follow these steps: