Validating APO temporary quantity assignments using ABAP program
Greetings
I expect I need assistance with tracing task handlers and transaction GUIDs.
I have been looking at creating a program for checking the consistency of the temporary quantity assignments in APO. When documents such as sales orders are created in ECC, stock is reserved in APO using a temporary quantity assignment.
The open assignments can be viewed using APO transaction /n/SAPAPO/AC06. For new orders the document number is correctly not displayed in APO since it is not assigned until the order is saved in ECC. Therefore determining if the assignment can be deleted can be a complex task. Normally I resort to asking a user to log off if I think there is a problem.
I would like to build a link from the transaction GUID available in the //AC06 temporary quantity assignment transaction and the ECC transaction.
Here is my intention:
1. Read the transaction GUID from the //AC06 transaction using function module /SAPAPO/OMB_DELT_READ_TOTAL
2. Find the second connection from the GUID as discussed in FAQ note 488725 (see below)
3. Find the original ECC transaction
4. If the ECC transaction is still active, the temporary quantity assignment is valid
5. If it is no longer valid, then the temporary quantity assignment can be deleted
According to SAP note 488725 (FAQ: Temporary quantity assignments in Global ATP):
The temporary quantity assignments are written to the liveCache
using a second database connection and are committed
immediately. This ensures that they are immediately visible for
parallel transactions but this also means that they are not
automatically deleted during a rollback. The "task handler" is
available for an almost automatic deletion of quantity assignments.
The task handler is triggered as soon as the RFC connection between
the calling system and the SCM is (unexpectedly) ended. It deletes all
quantity assignments written in the transaction, but it cannot
recuperate the non-persistent quantity assignments that were
implicitly deleted in the transaction
Terminations that do not break off the RFC connection (for example
a dump in the SAP GUI) cannot be caught by the SCM system.
The temporary assignments are deleted when I back out of a transaction or abruptly cancel it. I expect the link is buried deep within the kernel, but I have hopefully missed something simple as this is definitely outside my area of expertise. I have checked transactions such as STAD in both ECC and APO and I cannot find a common transaction GUID, and I cannot find a matching GUID when I convert the 22 character GUID to 32 characters.
Thanks in advance as any help is appreciated.
Martin
Hi Ajay
I am hoping to dive a little deeper and I have function modules read the order data.
My real challenge is trying to map the live cache delta anchor GUID in APO with the transaction GUID in ECC. For example, if there is a temporary lock in APO then I want to check that the user is still creating the sales order that generated the temporary quantity assignment. If I cannot find the initiating transaction, then the temporary quantity assignment can be deleted.
I have spent a while searching the function modules and classes. It is possible that some of the information I require is stored in memory rather than in the database or live cache. In this case, I believe I would need to read information from the kernel.
Documentation on the kernel functions is limited probably for good reasons. For example, transaction SM04 reads the screens users are logged on to from the kernel rather than using function modules or classes. Before anyone points it out, I do know about TH_LONG_USR_INFO.
I will need to work backwards:
- Find the link from the temporary quantity transaction code to the task handler used for the gATP check
- Find the associated transaction for the ECC second database connection as discussed in the note
- Find the initiating transaction in ECC
If this proves too much, I will have to resort to checking for record locks but I will not be able to determine which orders can be deleted if the user has locks for more than one order in APO and they are currently in VA01.
Thanks for taking the time to reply
Martin
Similar Messages
-
Is it possible to reset password for any user using abap program
Hi friends,
Is it possible to reset password for any user using abap program by specifying client number and user id. in selection screen.
if any code for that to reset password please mail me.
Thanks & Regards,
YogeshHello Yogesh,
Yes you can reset the password for any body using ABAP Code. But for that you really don't need any client number.
If this process is on regular basis, then recommended is to use BAPI for changing the user details Otherwise BDC also works fine.
=> Function Module - BAPI_USER_CHANGE
Call this in the program for resetting the password.
=> CALL TRANSACTION 'SU01' USING InternalTable
This will be executed in the BDC of SU01 transaction recording. Use the Password Change button in the application toolbar of transaction while recording.
Hope this helps.
PS If the answer solves your query, plz close the thread by marking it solved and rewarding each reply.
Regards -
Synchronizing Two Custom Z Tables Using Abap Program
Hi,
My requirement is Synchronizing two custom z tables using abap program me.
I have vendors in two tables, i have to select the common vendors from first which are existing in second table also.
In first table each vendor can have more than one supplier types in one field only. In second table these supplier types are divided into
different fields.
My requirement is I have to check supplier types in first table and i have to pass X to corresponding supplier types in second table vendor.
I have to pass X value for each depending in Second table depending upon supplier type in first table.
. How to do it can any one suggest with code.
Thanks in Advance,
Vivek
<subject edited by moderator>
Message was edited by: Manish KumarHi,
Imho, you need to get (meaning, extract into separate fields) the different supplier types from Table1 first. Your key for Table1 is the vendor no, which is also the key in Table2 (or the key for Table2 is Vendor no & Type).
For better performance, better select multiple/all required entries from Table1 instead of doing a select endselect.
Depending on the format of the vendortypes in Table1, put them in a new itab (for our purpose named Table1New where vendor no & type are the only 2 fields. For example, if the type length is fixed to 2 chars, or divided by space,... use your coding accordingly.
Next step is to select all vendor no's in Table2 which you have selected in Table1. If in Table2, the vendor no is the only key (and the all vendor types are filled in a single record), then loop check the vendor types from Table1New against the types in Table2.
If the key of Table2 is vendor no & vendor type, then do a read table for the key.
The logic in pseudo-code:
Select from Table1 into table. If you'd like to limit the selection size, add package size statement.
extract the vendor types in to itab Table1New.
Select the vendor & types from Table2 by using the for all entries option (better performance).
loop at Table1New
check in Table2:
if the unique key is vendor no: check all fields for the vendor type from Table1New
if the unique key combo is vendor no & type: check by using a read table.
If not found => add entry to Table2
endloop.
endselect Table1 (when using package size)
I guess the most difficult step is to extract the types from Table1 into separate fields, all the rest seems straight forward. Please keep in mind the itab type definitions for a better performance.
Good luck!
Best regards,
Zhou -
Fork in process chain using ABAP program
Hello everyone.
I need a fork in my chain. Depending on the values in some db table I will make a decision: do some process or skip and go further. The only solution I can see is using ABAP program. But unfortunately It doesn't return status. Any suggestion will be appreciated.Hi,
You have few process to run after the abap program. So make all those process as a different chain, and at the end of the ABAP program include a function module to trigger this chain, based on your condition.
If you like this idea, please revert for more information.
Hope this helps.
Thank you, -
Unzip files using ABAP program
Hi All,
Can anybody guide me how to Unzip a .zip file using ABAP program... Appreciate your immediate reply...
actually, my scenario is to check whether zip file is created in appl.server or not.., and if zip file created then i need to check whether its blank file or any content exist inside the file...
Thanks in advance
Bhaskerhi
good
parameters: command(236) lower case.
data: std_lines(255) occurs 0 with header line.
call function 'RFC_REMOTE_PIPE'
destination 'SERVER_EXEC'
exporting
command = command
read = 'X'
tables
pipedata = std_lines
exceptions
communication_failure = 1
system_failure = 2.
You should put your Unix command in the command parameter. "gunzip /yourfilepath/yourfilename" works on my Unix system. Once you determine the proper Unix command, you should be set. This technique is also nice because it provides you with echos back from Unix in table std_lines. For more complex Unix activity, you may want to consider throwing together a Unix script, and calling that via this code.
reward point if helpful.
thanks
mrutyun^ -
Access table using ABAP program in other database
Dear SAP Expert,
We have requirement that related to SAP interface.
Our SAP system run on Oracle database 11g (Unix).
Illustration: SAP system = A non SAP system = B
We need to access a table using ABAP program (from SAP system A) in other database (system B) that are not necessarily SAP database. The non-SAP system using SQL Server 2008 (Windows).
What is the best practice for this interface
Do we need database link? If yes, please help to inform me the details step to configure it.
Thanks and RegardsHi Friend,
You try using an intermediate system..passing your input required to fetch the data..and PI should call the respective query to retrive record..once the full flow is completed you should get the return through some table in the calling program.
else.
ask the other system guy to write a function with select query and ask him to expose as RFC and that RFC we have to call it as RFC in our program to get the required values and only thing we need here is a proper connector in place.
Regards
S.Janagar -
How to print external file using ABAP program
Hello
I want to print an external file which is located in server (
20.99.0.18\GUI\xyz\8.0QUALITY\QM_TS.DOC) .....i want to print these kind of files(which i have retrieved from table 'DRAW' field 'filep' )......i need to print these files using ABAP program.
thank you
Vikram.
Message was edited by:
Vikram Bojjaextract the data and pass to script or smartform for printing
-
Can a transaction be called in background dynamically using ABAP program??
Hi Experts,
Can a transaction be called in background dynamically using ABAP program without BDC???
Regards,
Mansi.u can create job dynamically through programming..Try this sample code..
data: jobname like tbtcjob-jobname value
' TRANSFER TRANSLATION'.
data: jobcount like tbtcjob-jobcount,
host like msxxlist-host.
data: begin of starttime.
include structure tbtcstrt.
data: end of starttime.
data: starttimeimmediate like btch0000-char1.
Job open
call function 'JOB_OPEN'
exporting
delanfrep = ' '
jobgroup = ' '
jobname = jobname
sdlstrtdt = sy-datum
sdlstrttm = sy-uzeit
importing
jobcount = jobcount
exceptions
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.
if sy-subrc ne 0.
"error processing
endif.
Insert process into job
SUBMIT zreport and return << Here it is a static call but u can make it dynamic
with p_param1 = 'value'
with p_param2 = 'value'
user sy-uname
via job jobname
number jobcount.
if sy-subrc > 0.
"error processing
endif.
Close job
starttime-sdlstrtdt = sy-datum + 1.
starttime-sdlstrttm = '220000'.
call function 'JOB_CLOSE'
exporting
event_id = starttime-eventid
event_param = starttime-eventparm
event_periodic = starttime-periodic
jobcount = jobcount
jobname = jobname
laststrtdt = starttime-laststrtdt
laststrttm = starttime-laststrttm
prddays = 1
prdhours = 0
prdmins = 0
prdmonths = 0
prdweeks = 0
sdlstrtdt = starttime-sdlstrtdt
sdlstrttm = starttime-sdlstrttm
strtimmed = starttimeimmediate
targetsystem = host
exceptions
cant_start_immediate = 01
invalid_startdate = 02
jobname_missing = 03
job_close_failed = 04
job_nosteps = 05
job_notex = 06
lock_failed = 07
others = 99.
if sy-subrc eq 0.
"error processing
endif.
Regards,
JOy. -
HOW TO creat BAR CHART using ABAP Programming
DEAR ALL,
I want some help as to how to creat GRAPHICAL display using ABAP programing (BAR CHART) any sample codes Example will be very helpful.
Regards,
VJOn earlier versions, you can do something like this.
[code]
REPORT ZRICH_0005 .
DATA: BEGIN OF ITAB_DATA OCCURS 0,
DATANAME(15),
QUANTITY1 TYPE I,
QUANTITY2 TYPE I,
QUANTITY3 TYPE I,
END OF ITAB_DATA.
Data: BEGIN OF ITAB_OPTIONS OCCURS 0,
OPTION(20),
END OF ITAB_OPTIONS.
ITAB_DATA-DATANAME = 'Maple'.
ITAB_DATA-QUANTITY1 = 5500.
ITAB_DATA-QUANTITY2 = 6200.
ITAB_DATA-QUANTITY3 = 5900.
APPEND ITAB_DATA.
ITAB_DATA-DATANAME = 'Oak'.
ITAB_DATA-QUANTITY1 = 3500.
ITAB_DATA-QUANTITY2 = 5200.
ITAB_DATA-QUANTITY3 = 4400.
APPEND ITAB_DATA.
ITAB_DATA-DATANAME = 'Cherry'.
ITAB_DATA-QUANTITY1 = 1800.
ITAB_DATA-QUANTITY2 = 2200.
ITAB_DATA-QUANTITY3 = 1900.
APPEND ITAB_DATA.
CALL FUNCTION 'GRAPH_MATRIX_3D'
EXPORTING
COL1 = 'Jan'
COL2 = 'Feb'
COL3 = 'Mar'
TITL = 'Lumber Usage in $'
TABLES
DATA = ITAB_DATA
OPTS = ITAB_OPTIONS
EXCEPTIONS
OTHERS = 1.
[/code]
Regards,
Rich Heilman -
Name the infotypes we uplode using abap programs
Hi,
can anyboby let me know, Name the infotypes we uplode using abap programs?
ThanksIT0008
IT0045
IT0589 ETC
some of them can be made through LSMW also but we use BDC . the main reason is we wont find Feilds to upload those data in templates -
How to Move file / call UNIX command using ABAP Program
Hi, ABAP Guru.
I need to Cut & Paste file (Move file from one location to another location) on Network Shared Drive using ABAP program.
But I can't figured out how to do this and what ABAP Command / FM / Method (and maybe UNIX command) that being used.
Please give me the advice.
Best regard and Thank you all.
Nattapash C.all methods for your requirements should be in class CL_GUI_FRONTEND_SERVICES
-
How to Raise Event in BW using ABAP program
Hi BW Experts,
Can anyone tell how to raise event in BW using a ABAP program.
Program should ask for the event to be raised and destination server.
Edited by: Arun Purohit on May 14, 2008 11:04 AMHi Arun,
By Using BP_EVENT_RAISE function module you can raise an event.Create an ABAP program and call the function module BP_EVENT_RAISE and create a avariant to specify the event to be raised. Schedule this ABAP code. Go to the start process type and set the schedule to "after event" and mention the event name that you created. Also, I think now you can mention the time as well and you can also schedule for periodic scheduling.
T Code : SM62 --> To Create an Event.
T Code : SE38 --> To Create an ABAP Program
Use Function Module : BP_EVENT_RAISE to raise an event.
Related links:
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset
Hope this helps
Regards
CSM Reddy -
RRi for query using ABAP program
For a report, we are using RRI (jump to target) functionality to see invoices in R/3 system using an ABAP program. I do not have much idea on R/3 systems how invoices are setup in R/3 Dev, test and prod. The ABAP report is done by a backend person. I need to place that in RSBBS. Here, my doubt is that do we need to follow the same procedure for this to move it to production system i.e, first create that RRI and ABAP in respective dev systems and transport both to test and then to Prod? Could anyone please explain me the steps on how this will work in real-time?
Points will be assigned.
ThanksHi,
I am not able to find how the two reports are conncted.
You can check in RSBBS t-code. RRI will be defined here to jump from One Query yo another and many more options.
My work is to copy the parent query a nd do some modification to it. Please let me know how to check and achieve that.
You can do this BEx Query Designer itself.
Regards,
Suman -
Error in Posting Data Using ABAP Program.
I am Using Scenario SAP(RFC) to Webservice through XI
I called My RFC into ABAP Program and given RFC Destination
and executing it goes into Short DUMP.
I gives an Error message as
" alternativeServiceIdentifier:party/service from channel configuration are not"
Wat should i Do for this Error.
regards,
Jayasimha JangamHi
Please look into these threads
alternativeServiceIdentifier: party/service from channel configuration are.
Rfc sender problem(sap r/3 -se37) 'alternativeServiceIdentifier: party/serv
Also this Blog will help you,
/people/michal.krawczyk2/blog/2005/09/07/xi-why-dont-start-searching-for-all-errors-from-one-place
Reward points if found usefull............ -
How to read data from an excel using abap program?
Hi
I have to write an abap program to read the contents of ms excel across various
sheets. Can any one help me regarding this
Thanks in advance
SatishHai Satish,
<b>You save all your Excel sheets as Text Tab Delimited.</b>
And then for each teext file can be uploaded into your daabase table.
See the Report that i have done.
REPORT Z_UPLOAD_TO_DATABASE_TABLE.
TABLES:
ZDETMAST. " Database table to be uploaded
Data declaration of the structure to hold ZDETMAST(zdetcode) data *
DATA:
BEGIN OF FS_ZDETMAST,
CNT(3) TYPE C, " Client
DETCODE(15) TYPE C, " Det Code
DETCAT(1) TYPE C, " Det category
DETTYPE(2) TYPE N, " Det type
DETDESC(30) TYPE C, " Det description
PFLAG(1) TYPE C, " Det Flag
TOTALDR(10) TYPE C, " Total DR
TOTALCR(10) TYPE C, " Total CR
END OF FS_ZDETMAST.
Internal table to hold ZDETMAST(zdetcode) data *
DATA:
T_ZDETMAST LIKE STANDARD TABLE OF FS_ZDETMAST.
Function Module to upload ZDETMAST Data
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'D:/ZDETMAST_2.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = 'DAT'
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = T_ZDETMAST
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC <> 0.
LOOP AT T_ZDETMAST INTO FS_ZDETMAST.
WRITE:
/ FS_ZDETMAST-CNT,
FS_ZDETMAST-DETCODE,
FS_ZDETMAST-DETCAT,
FS_ZDETMAST-DETTYPE,
FS_ZDETMAST-DETDESC,
FS_ZDETMAST-PFLAG,
FS_ZDETMAST-TOTALDR,
FS_ZDETMAST-TOTALCR.
ENDLOOP. " LOOP AT T_ZDETMAST ...
LOOP AT T_ZDETMAST INTO ZDETMAST.
IF SY-TABIX GE 2.
INSERT ZDETMAST.
DELETE ZDETMAST.
ENDIF. " IF SY-TABIX EQ 2
ENDLOOP. " LOOP AT T_ZDETMAST
Hope this helps you a lot.
<b>You can also use ALSM_EXCEL_TO_INTERNAL_TABLE FM to have excel data in ITAB AND THEN YOU CAN INSERT DATA INTO DATABASE TABLE.</b>
<b>Reward points if it helps you.</b>
Regds,
Rama chary.Pammi
Maybe you are looking for
-
Hello, I am using a macbook pro w/ retina display OS X 10.8.2. I got it in December and recently (maybe a few weeks to a month ago) it starts to freeze whenever im using chrome, same with safari. I have open 2, 3 tabs at most, made sure i quit every
-
i tried selecting a folder with less than 50 photos as my source, importing photos phase still takes longer than what sounds normal for such a small number of photos, but the job is done nevertheless. But what is worth noting, is that even if i run a
-
I have nothing to add.
-
Time reporting screen - additional fields for clock in/clock
Hi all, I have an issue with time reporting that I would appreciate your help in resolving. We would like to add additional fields for clock in/clock out data from external clocks. I think I saw it somewhere but now I cannot find it in the CAC2 confi
-
How to make reports on FI Line items
Hi all, Let me know how to make reports on FI Line items especially drill down reports. suggest me steps for developing reports through Bex query designer. Am new in reporting on FI. How to make the drilldown reports. Plz let me know step by step. T