Changing data in called program
Hi Gurus,
I have an exit where I want to change the main program's internal table data dynamically in this exit FM.
In short, I want to change the internal table data in calling program being in called FM.
Can this be done? If so how?
Regds
You can change the data in a field in a program using field-symbols. The field-symbols acts as a pointer to a defined field. Change the field-symbol value will in turn change the value of the field. You can also assign the value of a field from a different program ( at runtime ) to a field symbol. But I beleive that in this circumstance changing the field-symbol will not change the actual field value.
I had this same problem myself.
Similar Messages
-
Hi,
There s a std transaction F.27(RFKORK00) which we need to run to get Customer Statement. in this program, it uses a SUBMIT ( SAP140 ) which in turn uses a submit ( RFKORD11 ). i m using a customised program in place of RFKORD11. in this program i want to use a variable from program RFKORK00(first program)....
didnt find any syntax wherein i can pass any parameter from calling program to called program.
i think Export/Import to/from ABAP memory will work...
need ur inputs..wat r the diff ways we can do this n wat s the optimal method...
all inputs appreciated.
Thanks & Regards,
BikashHI
GOOD
I CAN GIVE YOU ONE SUGGESTION THAT YOU CAN DO THE CHANGES USING THE USER EXITS.
HERE I AM GIVING THE USER EXITS OF BOTH THE PROGRAMS YOU CHECK OUT WITH THEM.
RFKORK00=>
F050S001 FIDCMT, FIDCC1, FIDCC2: Edit user-defined IDoc segment
F050S002 FIDCC1: Change IDoc/do not send
F050S003 FIDCC2: Change IDoc/do not send
F050S004 FIDCMT, FIDCC1, FIDCC2: Change outbound IDoc/do not send
F050S005 FIDCMT, FIDCC1, FIDCC2 Inbound IDoc: Change FI document
F050S006 FI Outgoing IDoc: Reset Clearing in FI Document
F050S007 FIDCCH Outbound: Influence on IDoc for Document Change
F180A001 Balance Sheet Adjustment
FARC0002 Additional Checks for Archiving MM Vendor Master Data
THANKS
MRUTYUN -
How to get data from the called program using SUBMIT in a background job?
Hi Experts,
I've a program which creates a background job using JOB_OPEN and JOB_CLOSE function modules.
Between the above function modules I need to call a program using SUBMIT VIA JOB statement.
My problem is, How do I fetch some data in an internal table in the called program to the calling program after the SUBMIT statement?
I tried to EXPORT and IMPORT the data, but they are giving a failed sy-subrc when using this background job.
Kindly let me know your inputs and valuable suggestions.Kumar,
When we execute a program as a background job then the output will be sent to Spool which needs to be fetched again.I guess we need to use Submit via spool as mentioned by Rajat.
Check these threads to get some idea
submit report to spool & import spool id
Re: Generate Spool for a report
K.Kiran. -
Can I call a C program in trigger, and pass updated data to this program?
Can I call a C program in Oracle trigger, and pass updated data to this program?
Thank youAn update trigger has access to both the old and new values. Your update trigger can call an external procedure (a C program) and pass the old and new values as parameters. For example:
CREATE OR REPLACE TRIGGER <tname> BEFORE UPDATE OF <tab> FOR EACH ROW
BEGIN
pkg.proc(:old.col, :new.col);
END;
Where pkg.proc has been created as an external procedure. -
Call program and return with data
Hi, Experts,
I have called a program from my main program using SUBMIT
and return.
I need to get data back from called program in table format.
Is there any way to fullfill such requirement.
Regards
Rajiv singh.if the program is custom , then you can use import and export option. you can export the data to memory in the submit program, and import from memory after submit call.
if it Standard program , in some standard programs also will export data to memory , so check in inside the program. -
When I want to change date of picture, iPhoto close the program. Why?
When I want to change date of picture, iPhoto close the program. Why?
As a Test:
Hold down the option (or alt) key and launch iPhoto. From the resulting menu select 'Create Library'
Import a few pics into this new, blank library. Is the Problem repeated there?
Post back with the result. -
Get last changed date by Program ID/Object type/Object name of a task
Hi to all.
I'm looking for a way to get last changed date of an object by task number(CR). Any SAP function or utility someone has??
For example if I have a task with the object list:
R3TR PROG ZSD_ORD_COND_P
R3TR TABL ZCNDSLCTN
LIMU REPS ZSD_ORD_COND_CLS
R3TR TRAN ZZDIS
R3TR VIEW ZSD_VBAK_KONV
I need to get last changed date for each object.
Thanks,
Yuval Kaduri, Cellcom, Israel.
Edited by: yuval kaduri on Mar 2, 2008 2:59 PMHi Venu, thanks for the input.
In the table I don't have all changes made in objects that the CR is not released. I need to know all changed date of objects even if the CR is not released. There are few tables containing the date and time object last changed for the deferent types but I'm looking for a function or some utility someone wrote that gets the CR line info as - PgmID/Obj/Object name - and gives back last changed date and time.
Thanks,
Yuval Kaduri, Cellcom, Israel. -
How to update changed data in alv grid.
hi experts,
i have a editable alv report how to update the changed data on the grid to database table when i click save.
can anybody tell me how to do this if possible with example.
thanks in advance.
regards,
venuThe code below isn't a working program, but has most of what you should need. Field-symbol <dyn_table> will always have what is in the grid.
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa>.
DATA: pt_fieldcat TYPE lvc_t_fcat,
ls_fcat TYPE lvc_s_fcat,
new_table TYPE REF TO data,
new_line TYPE REF TO data.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
CREATE OBJECT g_grid EXPORTING i_parent = g_custom_container.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MATERIAL'.
ls_fcat-datatype = 'CHAR'.
ls_fcat-intlen = 18.
ls_fcat-outputlen = 18.
ls_fcat-coltext = 'Material'.
ls_fcat-edit = 1.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'QUANTITY'.
ls_fcat-datatype = 'INT4'.
ls_fcat-intlen = 6.
ls_fcat-outputlen = 6.
ls_fcat-coltext = 'Qty'.
ls_fcat-edit = 1.
APPEND ls_fcat TO pt_fieldcat.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = pt_fieldcat
IMPORTING
ep_table = new_table.
* assign ref variable to a field symbol
ASSIGN new_table->* TO <dyn_table>.
* Create dynamic work area and assign to FS
CREATE DATA new_line LIKE LINE OF <dyn_table>.
ASSIGN new_line->* TO <dyn_wa>.
* data_itab is filled with data that you want in grid
LOOP AT data_itab INTO data_wa.
CLEAR <dyn_wa>.
ASSIGN COMPONENT 'MATERIAL' OF STRUCTURE <dyn_wa> TO <fs>.
<fs> = data_wa-material.
ASSIGN COMPONENT 'QUANTITY' OF STRUCTURE <dyn_wa> TO <fs>.
<fs> = data_wa-quantity.
APPEND <dyn_wa> TO <dyn_table>.
ENDLOOP.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
i_structure_name = '<DYN_TABLE>'
is_variant = gs_variant
i_save = 'A'
i_default = 'X'
is_layout = gs_layout
it_toolbar_excluding = gt_exclude
CHANGING
it_outtab = <dyn_table>
it_fieldcatalog = pt_fieldcat[]
it_sort = gt_sort[]. -
Getting changed data back from editable ALV...
Hello Gurus,
I am working on ALV using standard ALV function module REUSE_ALV_GRID_DISPLAY. Now, To make the fields editale, I am using flag EDIT = 'X' in field catalog. This working fine.
Now, when the data is changed in ALV grid and user clicks on SAVE button that I have programmed in i_callback_usercommand, how can I get the changed data back from editable ALV so that I can change data in custom table ?
Please help.
Regards,
Rajesh.I see that the method CHECK_CHANGED_DATA is used. I am also doing it as follows. But how do I get the changed data back in table. There are no table parameters in
CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
DATA: REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
IF REF_GRID IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
ENDIF.
IF NOT REF_GRID IS INITIAL.
CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
ENDIF.
Please guide -
Search help - Need to read dynpro of the calling program
Hello all,
We have a requirement where we need to read the dynpro of the calling program of a search help.
Say I have a screen (selection screen, module pool or ALV grid etc) where I have a field PARTNER with whom a custom search help is attached. But on this same screen there is another field RLTYP. What we want is that when an F4 is taken on PARTNER, the value of RLTYP should also be passed as value to the Search help exit.
In short, we need to read the screen fields of the calling screen of a search help.
Any ideas are appreciated.
Regards
PriyankaCheck the sample code:
FUNCTION F4IF_SHLP_EXIT_OFFRCONT.
""Local interface:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCT
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
DATA : ws_flag(1) TYPE c,
ws_rec(1) TYPE c.
DATA : i_dynpfields TYPE dynpread OCCURS 0 WITH HEADER LINE.
DATA : ws_data TYPE ddshiface,
i_data TYPE ddshifaces.
ws_flag = 'X'.
ws_rec = 'X'.
IF ws_flag = 'X'.
i_dynpfields-fieldname = 'P_CUST'.
APPEND i_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = '1000'
TABLES
dynpfields = i_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
READ TABLE i_dynpfields WITH KEY fieldname = 'P_CUST'.
ws_data-shlpfield = 'ZCUSTOMER'.
ws_data-valfield = 'G_SIMFIELDS-FIELDNAME'.
ws_data-value = i_dynpfields-fieldvalue.
APPEND ws_data TO i_data.
ws_data-shlpfield = 'ZOFFRCONT'.
ws_data-valfield = 'P_CONT'.
ws_data-f4field = 'X'.
APPEND ws_data TO i_data.
LOOP AT shlp_tab.
IF ws_rec = 'X'.
shlp_tab-interface[] = i_data[].
APPEND shlp_tab.
ws_rec = ' '.
ENDIF.
ENDLOOP.
DELETE shlp_tab INDEX 1.
ws_flag = ' '.
ENDIF.
ENDFUNCTION.
Regards,
Prakash. -
Finding caller program in a RFC call
Hi experts,
We are having lots of CALL_FUNCTION_NOT_FOUND short dumps in one of our systems. The errors are caused because other systems call a function that does not exist, so the dumps are created.
What we would like to know is what program is doing these calls, since all we can see in the short dump is the caller system and the function it is trying to access, but not the exact program where the call is performed so we can fix the code.
Thanks in advance for your support.Sorry if this is too much of a wall of text, I can't find an "attach file" type feature.
ABAP runtime errors CALL_FUNCTION_NOT_FOUND
Occurred on 11.12.2006 at 10:04:34
Function module "Y_EF_DETERMINE_PICTURE" not found.
What happened?
The function module "Y_EF_DETERMINE_PICTURE" was called, but cannot be
found in the Function Library.
The current ABAP/4 program "SAPMSSY1 " had to be terminated because
one of the statements could not be executed.
This is probably due to an error in the ABAP/4 program.
What can you do?
Note the actions and input that caused the error.
Inform your SAP system administrator.
You can print out this message by choosing "Print". Transaction ST22
allows you to display and manage termination messages, including keeping
them beyond their normal deletion date.
Error analysis
The program "SAPMSSY1 " contains a CALL FUNCTION statement. The name
of the function module to be called is "Y_EF_DETERMINE_PICTURE".
No function module exists with the name "Y_EF_DETERMINE_PICTURE".
All function modules are stored in the Function Builder (SE37).
Possible reasons:
a) Wrong name specified. Particular attention should be paid
to upper/lower case and underscores ("_").
or
b) Transport error
c) In the case of an enqueue/dequeue module, the lock object
may not have been activated (ABAP Dictionary).
How to correct the error
Check the last transports to the R/3 System.
Is the program "SAPMSSY1 " currently being changed?
If an enqueue/dequeue module is involved, is the activation
of the lock object missing in the ABAP/4 Dictionary?
If the error occurred in a non-modified SAP program, you may be
able to find a solution in the SAP note system.
If you have access to the note system yourself, use the following
search criteria:
"CALL_FUNCTION_NOT_FOUND"
"SAPMSSY1 " or "SAPMSSY1 "
"REMOTE_FUNCTION_CALL"
Function modules with names similar to "Y_EF_DETERMINE_PICTURE":
Y_EF_USEX_DETERMINE_TAX
Y_GF1_DETERMINE_RECTYPE
Y_GK_DETERMINE_PRCTR
Y_EF_USEX_PICTURE_SUBMIT
Y_EF_USEX_SHOW_PICTURE
Y_EF_RFC_PICTURE_POST
Y_GF1_DETERMINE_SBU
Y_GF_DETERMINE_VERSION
Y_GF_DETERMINE_DATE_PREVMON
Y_GF1_DETERMINE_CURRENT_PERIOD
If you cannot solve the problem yourself, please send the
following documents to SAP:
1. A hard copy print describing the problem.
To obtain this, select the "Print" function on the current screen.
2. A suitable hardcopy prinout of the system log.
To obtain this, call the system log with Transaction SM21
and select the "Print" function to print out the relevant
part.
3. If the programs are your own programs or modified SAP programs,
supply the source code.
To do this, you can either use the "PRINT" command in the editor or
print the programs using the report RSINCL00.
4. Details regarding the conditions under which the error occurred
or which actions and input led to the error.
System environment
SAP Release.............. "46C"
Application server....... "sapgp1s"
Network address.......... "52.99.71.21"
Operating system......... "AIX"
Release.................. "5.3"
Hardware type............ "00C4449E4C00"
Database server.......... "sapgp1s"
Database type............ "DB6"
Database name............ "GP1"
Database owner........... "SAPR3"
Character set............ "en_US.ISO8859-1"
SAP kernel............... "46D"
Created on............... "Aug 26 2005 22:40:31"
Created in............... "AIX 1 5 0056AA8A4C00"
Database version......... "DB6_71 "
Patch level.............. "2113"
Patch text............... " "
Supported environment....
Database................. "DB6 06., DB6 07., DB6 08.*"
SAP database version..... "46D"
Operating system......... "AIX 1 4, AIX 2 4, AIX 3 4, AIX 1 5, AIX 2 5, AIX 3
5, , System build information:, -
, LCHN :
User, transaction...
Client.............. 000
User................ "SAPSYS"
Language............ "E"
Transaction......... " "
Program. ........... "SAPMSSY1 "
Screen. ............ "SAPMSSY1 3004"
Line of screen...... 2
Information about Remote Function Call (RFC) Caller:
System.............. "WP1 "
Database release.... "46C "
Kernel release. .... "46D "
Connection type. ... "3 " (2 = R/2, 3 = R/3, E = Extern, R = Reg.
Call type........... "S-" (S = synch., a/A = asynch., T = transactional
Client.............. 510
User................ "PC1706 "
Transaction......... "/COCKPIT/1 "
Function module..... "Y_EF_DETERMINE_PICTURE"
Call destination.... "GP1590"
Source server....... "wsdux44_WP1_10"
Source IP address... "52.99.71.124"
Additional information about RFC logon:
Trusted relationship " "
Logon return code... " "
Trusted return code. " "
Note: In Releases earlier than 4.0, some of the above information about
RFC calls may not be available.
Information on where termination occurred
The termination occurred in the ABAP/4 program "SAPMSSY1 " in
"REMOTE_FUNCTION_CALL".
The main program was "SAPMSSY1 ".
The termination occurred in line 67
of the source code of program "SAPMSSY1 " (when calling the editor 670).
Source code extract
000370 ENDMODULE.
000380
000390 MODULE %_RFCDIA_CALL OUTPUT.
000400 "Do not display screen !
000410 CALL 'DY_INVISIBLE_SCREEN'.
000420 PERFORM REMOTE_FUNCTION_DIACALL.
000430 ENDMODULE.
000440
000450 MODULE %_CPIC_START.
000460 IF SY-XPROG(4) = '%RFC'.
000470 PERFORM REMOTE_FUNCTION_CALL USING RFCTYPE_EXTERNAL_CPIC.
000480 ELSE.
000490 CALL 'APPC_HD' ID 'HEADER' FIELD HEADER ID 'CONVID' FIELD CONVID.
000500 PERFORM CPIC_CALL USING CONVID.
000510 ENDIF.
000520 ENDMODULE.
000530
000540
000550 FORM CPIC_CALL USING CONVID.
000560 COMMUNICATION SEND ID CONVID BUFFER HEADER.
000570 IF SY-SUBRC EQ 0.
000580 PERFORM (SY-XFORM) IN PROGRAM (SY-XPROG).
000590 ELSE.
000600 MESSAGE A800.
000610 ENDIF.
000620 ENDFORM.
000630
000640
000650 FORM REMOTE_FUNCTION_CALL USING VALUE(TYPE).
000660 DO.
CALL 'RfcImport' ID 'Type' FIELD TYPE.
000680 PERFORM (SY-XFORM) IN PROGRAM (SY-XPROG).
000690 RSYN >SCONT SYSC 00011111 0.
000700 ENDDO.
000710 ENDFORM.
000720
000730 FORM REMOTE_FUNCTION_DIASTART.
000740 DO.
000750 CALL 'RfcImport' ID 'Type' FIELD RFCTYPE_RFCDIA.
000760 PERFORM (SY-XFORM) IN PROGRAM (SY-XPROG).
000770 "Parking position for next request
000780 RSYN >SCONT SYSC 00011111 10.
000790 "ALternativ : Free mode
000800 "COMMIT WORK.
000810 "SYSTEM-CALL FREE MODE 0.
000820 ENDDO.
000830 ENDFORM.
000840
000850 FORM REMOTE_FUNCTION_DIACALL.
000860 SY-XCODE = '%_@no@'.
Contents of system fields
SY field contents..................... SY field contents.....................
SY-SUBRC 0 SY-INDEX 1
SY-TABIX 0 SY-DBCNT 0
SY-FDPOS 0 SY-LSIND 0
SY-PAGNO 0 SY-LINNO 1
SY-COLNO 1
Chosen variables
Name.......................... Contents.1........2........3....+....4
SY-XPROG
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
SY-XFORM Y_EF_DETERMINE_PICTURE
554454454544445544555422222222
9F56F45452D9E5F093452500000000
%_SPACE
0
0
SY-MSGID
22222222222222222222
00000000000000000000
EBC_TO_ASC-X05 P&QéRêSëTèUíVîWïXìY~ZÜ[$*])^;_^
525E5E5E5E5E5E5E5E575D5252525355
06192A3B485D6E7F8C9EACB4CAD9EBFE
RFCTYPE_QUEUE 6
0000
0006
%_PRINT 000
2222333222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 80 0 ########
2222222222320000000022222222222222222222
0000000000000000000000000000000000000000
... + 120
22222222
0000000
SY-MSGNO 000
333
000
EBC_TO_ASC-X04 @ A BâC{DàEáFãGåHçIñJÄK.L<M(N+O!
424A4E474E4E4E4E4E4F4C4243424242
0010223B405163758791A4BECCD8EBF1
SY-MSGV1
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
SY-MSGV2
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
SY-MSGV3
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
SY-MSGV4
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
%_?NOT_ASSIGNED?
2222
0000
SPACE
2
0
SY-REPID SAPMSSY1
5454555322222222222222222222222222222222
310D339100000000000000000000000000000000
TYPE 3
0000
0003
SYST ########################################
0000000000000000000000000000000000000000
0001000000000000000000000000000000000000
... + 40 ########################################
0000000000000000000000000000000000000000
0000000000010000000100000000000000000000
... + 80 ########################################
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
... + 120 #######################################T
00000000
0000000
Active calls / events
No.... Type........ Name..........................
Programm
Include Line
1 FORM REMOTE_FUNCTION_CALL
SAPMSSY1
SAPMSSY1 67
2 MODULE (PBO) %_RFC_START
SAPMSSY1
SAPMSSY1 31
Internal notes
The termination occurred in the function "link_rfdir" of the SAP
Basis System, specifically in line 165 of the module
"//bas/46D/src/krn/runt/ablink.c#3".
The internal operation just processed is "CALY".
The internal session was started at 20061211100434.
Active calls in SAP kernel
=> 64 bit R/3 Kernel
=> 64 bit AIX Kernel
=> Heap limit = unlimited
=> Stack limit = unlimited
=> Core limit = 51200000
=> File size limit = unlimited
=> Heap address = 0x118dba360
=> Stack address = 0xfffffffffff5d50
=> Stack low = 0xfffffffffff5d50
=> Stack high = 0xffffffffffff600
=> Stack Trace:
AixStack() at 0x100059364
CTrcStack2() at 0x10005945c
rabax_CStackSave() at 0x10003959c
ab_rabax() at 0x1000425b4
link_rfdir() at 0x100540418
ab_link() at 0x100540a18
ab_rfcimport() at 0x1005f49f0
ab_jcaly() at 0x100024560
ab_extri() at 0x100487474
ab_xevent() at 0x10059c804
ab_dstep() at 0x10043bd98
dynpmcal() at 0x100942f94
dynppbo0() at 0x100941320
dynprctl() at 0x100948f40
dynpen00() at 0x1008f7818
Thdynpen00() at 0x1001429f4
TskhLoop() at 0x100146368
tskhstart() at 0x1001576ac
DpMain() at 0x100e06e38
main() at 0x100de72f4
List of ABAP programs affected
Type
Program
Gen. date time
LoadSize
Prg
SAPMSSY1
04.01.2000 19:06:59
20480
List of internal tables
No dump information available
Directory of application tables (contents)
Program
Name.......... Contents.1........2........3....+....
Directory of data areas (administration information)
Program
No.. Name.......... Lgth Ofsg Type Next Gen date Gen time
SYST
L not assigned -15 0 IN
M /%_LISTTABLE -14 1 CO 0
T global stack -13 1 2 GL 0
SAPMSSY1
A global data 0 3 DA
L constant dat 1 4 LI .0 .0216
L constant dat 2 5 LI SSY .0 .018B
L not assigned 3 6 IN
L SYST 4 7 TA 0
L SY 5 8 TA
L RSJOBINFO 6 9 TA
M /%_SYS%% 7 0 CO
M field symbol 8 1 FS
L TCPIC 9 2 TA
M field symbol 10 3 FS
L text pool 11 4 TP
Directory of data areas (contents)
Program
No.. Name.......... Contents..1........2........3....+....
SYST
L not assigned 0
L text pool 102 |SAPMSSY1
ABAP control blocks CONT
Include Line source code
Index Name F1 Co Par01 Par2. Par3. Par4. Tabl
SAPMSSY1 60 MESSAGE A800.
215 CLEA 00 84
216 CLEA 00 85
217 MESS 00 27
SAPMSSY1 62 ENDFORM.
218 ENDF 00
219 -
223 -
SAPMSSY1 65 FORM REMOTE_FUNCTION_CALL USIN
227 PERP 00 1
228 PERP 02
SAPMSSY1 66 DO.
229 WHIL 00 2
233 WHIL 00 3
237 BRAN 05 Branch to 251
SAPMSSY1 67 CALL 'RfcImport' ID 'Type' FIE
238 CALY 00 3 86 70 71 71
>>>>> CALY 02 87 P0
SAPMSSY1 68 PERFORM (SY-XFORM) IN PROGRAM
246 xper 02 12 13
248 PERP 80
SAPMSSY1 69 RSYN >SCONT SYSC 00011111 0.
249 SYSC 1F
SAPMSSY1 70 ENDDO.
250 BRAX 00 Branch to 233
251 WHIL 00 4
SAPMSSY1 71 ENDFORM.
255 ENDF 00
256 -
End of runtime analysis -
Passing the dynamic internal tables to the calling program
Hello,
From my user exit USEREXIT_MOVE_FIELD_TO_VBAP in program MV45AFZZ I am calling a routine to build dynamically an internal table. I get A DUMP in the perform statement. Please see below.
*FORM USEREXIT_MOVE_FIELD_TO_VBAP.*
*Global declarations
RANGES: KSCHL FOR A605-KSCHL,
KUNNR FOR A605-KUNNR,
MATNR FOR A605-MATNR.
field-symbols: <dyn_table> type standard table,
<dyn_wa>,
<dyn_field>.
*Internal tables and work areas
data: dy_table type ref to data,
dy_line type ref to data,
xfc type lvc_s_fcat,
ifc type lvc_t_fcat.
KSCHL-sign = 'I'.
KSCHL-option = 'EQ'.
KSCHL-low = 'ZB00'.
APPEND KSCHL.
if not vbap-matnr is initial.
MATNR-sign = 'I'.
MATNR-option = 'EQ'.
MATNR-low = vbap-matnr.
APPEND MATNR.
endif.
if not vbak-kunnr is initial.
KUNNR-sign = 'I'.
KUNNR-option = 'EQ'.
KUNNR-low = vbak-kunnr.
APPEND KUNNR.
endif.
perform get_data(ZSD_CARRIER_SELECTION)
TABLES KAPPL
KSCHL
KUNNR
MATNR
CHANGING <dyn_table>.
*ENDFORM.*
*Then in program ZSD_CARRIER_SELECTION*
*Global declarations
RANGES: KSCHL FOR A605-KSCHL,
KUNNR FOR A605-KUNNR,
MATNR FOR A605-MATNR.
field-symbols: <dyn_table> type standard table,
<dyn_wa>,
<dyn_field>.
*Internal tables and work areas
data: dy_table type ref to data,
dy_line type ref to data,
xfc type lvc_s_fcat,
ifc type lvc_t_fcat.
*FORM get_data CHANGING dyn_table.*
select single * into w_t685
from t685 where KSCHL eq P_KSCHL
and KOZGF ne space.
select * into table i_T682I
from T682I where KVEWE = w_t685-KVEWE
and KAPPL = w_t685-KAPPL
and KOZGF = w_t685-KOZGF.
loop at i_T682I into W_T682I.
CONCATENATE 'A' W_T682I-KOTABNR INTO w_dd02l-TABNAME.
itables-TABNAME = w_dd02l-TABNAME.
collect itables.
endloop.
loop at itables.
perform get_structure tables ifc
using itables-TABNAME.
endloop.
loop at ifc into xfc where key = 'X'.
clear i_fields.
i_fields-FIELDNAME = xfc-fieldname.
i_fields-sign = 'I'.
i_fields-option = 'EQ'.
if xfc-fieldname = 'KSCHL'.
i_fields-low = 'ZB00'.
endif.
append i_fields.
endloop.
call method cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ifc
IMPORTING
ep_table = dy_table.
assign dy_table->* to <dyn_table>.
create data dy_line like line of <dyn_table>.
assign dy_line->* to <dyn_wa>.
*ENDFORM.*
*FORM get_structure tables ifc type LVC_T_FCAT*
*using TABNAME.*
data : idetails type abap_compdescr_tab,
xdetails type abap_compdescr.
data : ref_table_des type ref to cl_abap_structdescr.
* Get the structure of the table.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( TABNAME ).
idetails[] = ref_table_des->components[].
select * into table i_dd03l
from dd03l where tabname = tabname.
sort i_dd03l by fieldname.
loop at idetails into xdetails.
clear xfc.
xfc-fieldname = xdetails-name .
xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length.
xfc-decimals = xdetails-decimals.
read table i_dd03l with key fieldname = xfc-fieldname
KEYFLAG = 'X'.
if sy-subrc = 0.
xfc-key = 'X'.
endif.
collect xfc into ifc.
endloop.
*ENFORM. "get_structure*
Thanks in advance.
Please use code tags in the future when pasting code.
Edited by: Rob Burbank on Mar 2, 2009 4:29 PMHi,
In the calling program whereyou are calling the subroutine...
perform get_data(ZSD_CARRIER_SELECTION)
TABLES KAPPL
KSCHL
KUNNR
MATNR
CHANGING <dyn_table>.
you have made use of field symbol <dyn_table> which you have not assigned.... due to which you are getting a dump....
so before the call you have to assign this field symbol and then use it in the call...
just assing to some dummy type and then you pass it using changing...
later on in the called program you can unassign the field-symbol as soon as you enter in the subroutine.
data itab type standard table of scarr.
assign itab to <dyn_table>.
perform get_data(ZSD_CARRIER_SELECTION)
TABLES KAPPL
KSCHL
KUNNR
MATNR
CHANGING <dyn_table>.
even if this does not solve your problem try debugging and check at which line it is going for a dump... so that it gives a clear idea where exactly is the fault
Regards,
Siddarth -
SQ02 Data retrieval by program
Hello,
I would like create an abap query 'SQ01' using infoset 'SQ02' with the option
'Data retrieval by program' and 'Integrated program'
I wrote and tested this program:
REPORT ZONR_REPORT_MBEW.
data: mbew_tab like mbew OCCURS 0 WITH HEADER LINE.
* <Query_head>
select * from mbew into table mbew_tab
where bwkey = 'MANT' and bklas = '3000' and matnr = '000000000001027712'.
call function 'MBEW_EXTEND'
exporting
XVPER = 'X'
tables
mbew_tab = mbew_tab.
loop at mbew_tab.
* <Query_body>
endloop.
Could you help how to fill the area 'Data structure' of the option
'Data retrieval by program' ?
With the menu 'Goto' -> 'Code' -> 'Data readindg program'
I found this template of program :
REPORT RSAQDVP_TEMPLATE .
* declarations
* (insert your declarations in this section)
data:
MBEW type MBEW ,
it_data type standard table of MBEW .
field-symbols: <struc> type MBEW .
* selection screen statements
* (define your selection-screen here)
* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_HEAD>
* read data into IT_DATA
* (select your data here into internal table IT_DATA)
* output of the data
* (this section can be left unchanged)
loop at it_data assigning <struc>.
move-corresponding <struc> to MBEW .
* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_BODY>
endloop.
Could you help me to customize the program ZONR_REPORT_MBEW according
to the template, because I'm a neewbie in abap ?
Thanks for your helping
MarcoThe "Data retrieval program" would be coded like any normal report except for adding a few comment tags that will be used by SQ01 query generator as placeholders to insert its own code into your code to generate the query program.
In general this is how a data retrieval program is coded. SQ01 when it generates the query will insert its own code in place of *<Query_body> and *<Query_head> comment tags
REPORT ztest_sq01_driver_program.
TABLES: <name of dictionary structure of your infoset>.
* DATA declarations
START-OF-SELECTION.
*<Query_head>
* <Fetch your data here and store it in an internal table gt_report> that has all the fields that you need in your query
END-OF-SELECTION.
LOOP AT gt_report INTO gs_report.
MOVE-CORRESPONDING gs_report TO <name of dictionary structure of your infoset>
*<Query_body>
ENDLOOP. -
Editable ALV -- OO -- Changed data capture
Hi,
I'm using an editable ALV to display the output. Output has a field for the user to enter comments. When the user enters the comments and presses "ENTER" key or clicks somewhere else on the ALV itself, the event DATA_CHANGED or DATA_CHANGED_FINISHED gets triggered and I'm able to capture the changed data and update the DB table.(I have a "SAVE" button on the menu bar which when pressed will update the ALV values into DB table.)
However, I need to capture this changed data even if the user does not press the "ENTER" key or clicks somewhere else on the ALV, but just presses the "SAVE" button. Please let me know if there is any way to do this.
Thanks,
Raj.Hi,
in your program check the user-command if 'SAVE' then write the following code in it
"Call the method check_changed_data to update the internal table with changed data.
DATA: lv_valid TYPE xfeld,
lv_refresh TYPE xfeld.
CALL METHOD gv_alv_grid->check_changed_data
IMPORTING
e_valid = lv_valid
CHANGING
c_refresh = lv_refresh.
" to refresh alv
CALL METHOD gv_alv_grid->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.
by this way it the internal table will get the changed data and then you can update it in the DB and also after updating show the ALV since it is refreshed it will now show the changed data.
Hope it helps you,
Regards,
Abhijit G. Borkar -
Can't Change date on Windows 7, If I try to, computer freezes.
Just recently my computer thought it'd be fun to go back in time, and it changed its date back to 12/31/2000. This is causing loads of errors on numerous games and websites, (website security certificate not yet valid, etc). I try to simply click at the bottom right, or go to the control panel and "change date and time", but if I "apply" those changes, my computer freezes on the spot. From my understanding through the use of Bootcamp I have no access to Windows 7 BIOS, so I don't know what to do.
Thanks in AdvanceHi
The best way to uninstall IE 11 or IE 10 is to go to the control panel.
Double click the Programs and features Icon.
On the left hand side click on "View installed updates"
Scroll through the list until you find IE 11, it should be under a heading called "Microsoft Windows"
Click on IE11 and then click on the Uninstall button at the top.
Reboot your machine and you should be back to IE10.
Hope this helps. Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
Maybe you are looking for
-
Hi, I need to use Mail Adapter Sender with MAPI protocol. I have create my Comunication Channel of type IMAP4 and configured URL as mapi://server and actved one. In RWB appears the message "mail client job stopped completly" Can anybody help me?
-
Transitioning from iPhoto 6 to Aperture on new iMac
Please redirect me if there is somewhere this has been asked, or if there would be a better resource for me. I guess I have several issues here. We have a 2006 iMac with about 12,000 photos stored in iPhoto 6. I am a serious hobbyist, and want to tra
-
What would be the best way to read from a file. Which classes do I need to use? I have to write a program, which reads data from a comma separated flat file, parse it and after inserting some busineess logic insert into a databse . I will have to rea
-
Hi all, iam doing File to idoc Senario and i need to map control record,How to map the control record. regards, phani
-
I have install oracle9i on AIX5L can anybody show me where I can download oracle9i developer suite for AIX5L