How to use table field values as dynamic parameters on selection screen
Hi,
I need help on dynamic selection parameters.
I need to display no. of parameters from the fields of a database table.
Basically i want to pass field values of a table to selection screen and we can use those values as parameter on selection screen.
If there are 10 entries in a table field( say field is field_name and entries are bukrs,kunnr etc.)
I need to display as many parameters on screen as many values are there in field_name( In this case it is 10)
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
PARAMETERS:
p_bukrs(5) ,
p_kunnr(5) ,
SELECTION-SCREEN END OF BLOCK b2.
Thanx
Hi,
You can create it using Dynamic Program.Check this link below.
[Creating Dynamic Programs|http://help.sap.com/saphelp_46c/helpdata/en/9f/db996135c111d1829f0000e829fbfe/content.htm]
Hope this might help you.
Thanks,
Prashanth
Similar Messages
-
How to use a parameter of a report program from selection screen in a dialog program
how to use a parameter value(entered ) of a report program from a selection screen in a dialog program.
I have to fetch the value entered in the parameter of report program and display it in a dialog programHi Aasim,
Just mention like below in your ABAP report.
PARAMETERS: p_aufnr TYPE aufnr MEMORY ID ord.
and mention the same memory ID name in the module pool screen property it automatically populates the value to and fro -
How to get Table Field values during sync from Events like DbSyncProgressEventArgs.
Hi,
I am facing an issue related to Sync. During Sync as some Tables fails to sync, entire Session gets rollback.
Through DbSyncProgressEventArgs or DbApplyingChangesEventArgs, DbChangesSelectedEventArgs or DbChangesAppliedEventArgs, events, i want to find the Field values from that table so that i can identify which raw failed.
For example, for DbSyncProgressEventArgs, we can fetch table using e.TableProgress.TableName. But how can i get fields or Primary key value of that table row which is inserted or updated or deleted.
Please give suggestions on this.
Thanks,
SangeethaDbApplyingChangesEventArgs, DbChangesSelectedEventArgs has Context property that has in turn
has a Dataset property containing the change dataset being synched. -
How to create table field inside the dynamically created table?
Hi, All!
I have created dynamic internal table (using field catalog and CALL METHOD cl_alv_table_create=>create_dynamic_table )
and put this table into FM REUSE_ALV_GRID_DISPLAY. ALV grid work. Now I need to color rows of my ALV, therefore I have to insert new column with name "COLORS" and type lvc_t_scol. I see three ways to do it , but all ones are unsuccessful:
1. Insert column into field catalog. FM REUSE_ALV_FIELDCATALOG_MERGE does not return info about "COLORS" I guess because COLORS is a table.
2. Insert column into field catalog manually. It provides a short dump during dynamic table creating or during call of REUSE_ALV_GRID_DISPLAY.
3. Create dyn table first, then add new field . I could not find a way how to do it :(((((((
Can somebody help me?
TatianaHi,
Here is the solution for this problem, Sample code:
*& Report ZCHA_ALV_GRID_CELL_COLOR *
REPORT ZCHA_ALV_GRID_CELL_COLOR .
TABLES:MARA.
DATA: W_CONTAINER TYPE SCRFNAME VALUE 'ALV_CONTAINER',
W_GRID TYPE REF TO CL_GUI_ALV_GRID,
W_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
W_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
*layout
DATA: WA_LAYOUT TYPE LVC_S_LAYO.
*field catalog
DATA: IT_FIELDCAT_WRT_OFF TYPE LVC_T_FCAT,
WA_FIELDCAT_WRT_OFF TYPE LVC_S_FCAT.
DATA:BEGIN OF IT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
CELLCOLORS TYPE LVC_T_SCOL,
END OF IT_MARA.
SELECT P~MATNR
Q~MAKTX
INTO CORRESPONDING FIELDS OF TABLE IT_MARA
FROM MARA AS P INNER JOIN
MAKT AS Q ON
PMATNR = QMATNR.
CALL SCREEN 100.
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'xxx'.
IF NOT W_CONTAINER IS INITIAL.
CREATE OBJECT W_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = W_CONTAINER.
CREATE OBJECT W_GRID
EXPORTING I_PARENT = W_CUSTOM_CONTAINER.
ENDIF.
CLEAR IT_FIELDCAT_WRT_OFF.
REFRESH IT_FIELDCAT_WRT_OFF.
WA_FIELDCAT_WRT_OFF-FIELDNAME = 'MATNR'.
WA_FIELDCAT_WRT_OFF-COL_POS = '1'.
WA_FIELDCAT_WRT_OFF-OUTPUTLEN = '35'.
WA_FIELDCAT_WRT_OFF-SCRTEXT_L = 'Material No'.
APPEND WA_FIELDCAT_WRT_OFF TO IT_FIELDCAT_WRT_OFF.
CLEAR WA_FIELDCAT_WRT_OFF.
WA_FIELDCAT_WRT_OFF-FIELDNAME = 'MAKTX'.
WA_FIELDCAT_WRT_OFF-COL_POS = '2'.
WA_FIELDCAT_WRT_OFF-OUTPUTLEN = '45'.
WA_FIELDCAT_WRT_OFF-SCRTEXT_L = 'Material Desc'.
APPEND WA_FIELDCAT_WRT_OFF TO IT_FIELDCAT_WRT_OFF.
CLEAR WA_FIELDCAT_WRT_OFF.
DATA LS_CELLCOLOR TYPE LVC_S_SCOL.
READ TABLE IT_MARA INDEX 5 .
LS_CELLCOLOR-FNAME = 'MATNR'.
LS_CELLCOLOR-COLOR-COL = '3'.
LS_CELLCOLOR-COLOR-INT = '1'.
APPEND LS_CELLCOLOR TO IT_MARA-CELLCOLORS.
MODIFY IT_MARA INDEX 5.
WA_LAYOUT-CTAB_FNAME = 'CELLCOLORS'.
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = WA_LAYOUT
CHANGING
IT_FIELDCATALOG = IT_FIELDCAT_WRT_OFF
IT_OUTTAB = IT_MARA[].
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
Try to assign appropriate points.
Regards,
Suman -
How to use Table valued MSSQL function in OBIEE
Hi all,
Can some one help me to understand how to use table valued function in OBIEE? I want to use a table valued function (MSSQL function, with some input parameter), in the physical layer to pull the data?
I know for MSSQL Stored Procedure we can write as
EXEC SP_NAME @Parameter = 'VLUEOF(NQ_SESSION.Variablename)'
but now I have a table valued function in the query window I can get the data as
select * from myfunction(parametervalue)
In physical layer of OBIEE I have tried as
select * from myfunction('VLUEOF(NQ_SESSION.Variablename)'), but I'm getting error as the NQ_SESSION variable doesn't have a value , but actually I have initialized the variable but still Im getting error.
Can some one help me to solve this.
Thanks,
MithunFollow this link and try yourself. let me know for issues
Substring instr issue in obiee
Appreciate if you mark
Edited by: Srini VEERAVALLI on Feb 20, 2013 8:13 AM -
How to populate custom table field value into standard DFF
Hi Gurus
I am newbie to the OAF
I have a requirement to populate the custom table field value into standard DFF. we enabled the DFF in ReqDistDFFOnAcct(po_req_distributions_all). On the requisition tab as soon as i click on the checkout button, the custom field value has to be shown in the requisition distributions DFF field along with the standard Columns like charge account, percent, qty and when we click on the next button, it has to hit the base table ie., po_req_distributions_all.
the standard columns data is showing the screen. how to acheive this requirement programatically
There is a EO for the req distributions table. please help me how to achevie this requirement.
Any help woud be greatly appreciated.
Thank You!
KrishnaThanks Aj. Finally i made some progress....but i am getting an error in the inst_top OPMN folder 10/10/08 15:37:14 Error: <connector name="OracleASjms" path="OracleASjms.rar" /> will not be bootstrapped since corresponding module declaration was not found in application.xml. I cleared the cache, bounced the webserver. Could not able to understand what is this error
Following is the code that i have written. I am not able to find out what is the error. please help me how to fix this error. there is no changes in the page and the value is not auto populating. the page is having the normal behaviour as the standard one.
Thanks in Advance for your help...
public class xxCheckoutDistsCO extends CheckoutDistsCO
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean);
String UnitId="";
//First get the Application Module
OAApplicationModule am = pageContext.getApplicationModule(webBean);
OAViewObject vo = (OAViewObject)am.findViewObject("PoRequisitionLinesVO");
String Reqlineid="";
String Linenum="";
String DeliverLoc="";
if(vo.first() !=null)
Reqlineid= vo.first().getAttribute("RequisitionLineId").toString();
Linenum = vo.first().getAttribute("LineNum").toString();
DeliverLoc = vo.first().getAttribute("DeliverToLocationId").toString();
// if(pageContext.isLoggingEnabled(OAFwkConstants.STATEMENT))
// pageContext.writeDiagnostics("TEST >", Reqlineid,1);
// pageContext.writeDiagnostics("TEST >", Linenum,2);
// pageContext.writeDiagnostics("TEST >", DeliverLoc,3);
UnitId=null;
String Querry="select amli_icx_oaf_utils.get_blding_unit_id (?,?,?) from dual";
try
PreparedStatement ps=am.getOADBTransaction().getJdbcConnection().prepareStatement(Querry);
ps.setInt(1,Integer.parseInt(Reqlineid));
ps.setInt(2,Integer.parseInt(Linenum));
ps.setInt(3,Integer.parseInt(DeliverLoc));
ResultSet rs=ps.executeQuery();
// ps.execute();
// am.getOADBTransaction().commit();
while (rs.next())
System.out.println(" Query Results ");
UnitId= rs.getString(1);
System.out.println(" first > ");
rs.close();
ps.close();
catch(SQLException a)
System.out.println(" Error "+a);
System.out.println(" Second > ");
System.out.println(" Third > "); ----the program is executing upto here...it is not setting the value after this.
OAViewObject povo = (OAViewObject)am.findViewObject("PoReqDistributionsVO");
if(povo.getCurrentRow()!=null ) --------If i remove this condition i am getting the nullpointer exception in page.....
System.out.println(" Fourth > ");
povo.getCurrentRow().setAttribute("Attribute12",UnitId);
// if(pageContext.isLoggingEnabled(OAFwkConstants.STATEMENT))
// pageContext.writeDiagnostics("TEST >", UnitId, 1);
Thanks
krishna -
How to Track the changes made to the custom table field value
I want to track the changes made to the custom table field value in table maintenance generator.please help me it is very urgent
Thanks & Regards,
KrantiHi Satya,
These are the steps you've to do.
1. Enable the change document flag in the data element level for the fields of the tables you want to monitor.
2. Go to transaction SCDO. Create a new change object, and add your table to this object. After generation, you'll get a function module.
3. Call this function module in the table maintainence generator screen, after the data is saved to the database table. This function module automaticallly writes the changes, with the old and new values, and the fields that were changed to the tables CDHDR and CDPOS.
4. You can keep track of the changes made to the table by monitoring these tables.
Regards
Anil Madhavan -
How to use table control in bdc, plz somebody tell me.
Hi Gurus,
Ples tell me
how to use table control in bdc, plz somebody tell me.
And send Sample CODE also. Thnaks in advance.hi,
Table control / step loop in BDC
Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen?
Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
we can determine the number of visible lines on Transaction Screen from our Calling BDC program.
Demo ABAP code has two purposes:
1. how to determine number of visible lines and how to calculte page number;
(the 'calpage' routine has been modify to meet general purpose usage)
2. using field symbol in BDC program, please pay special attention to the difference
in Static ASSIGN and Dynamic ASSIGN.
Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop.
Then have a look at steploop itselp, one entry of it will occupy two lines.
(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
Now we have : FixedLine = 9
LoopLine = 2(for table control, LoopLine is always equal to 1)
Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
Now we have: FirstLine = 0
or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
Step3: write a subroutine calcalculating number of pages
(here, the name of actual parameter is the same as formal parameter)
global data: FixedLine type i, " number of fixed line on a certain screen
LoopLine type i, " the number of lines occupied by one steploop item
FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new " scrolling screen is empty, otherwise is 1
Dataline type i, " number of items you will use in BDC, using DESCRIBE to get
pageno type i, " you need to scroll screen how many times.
line type i, " number of lines appears on the screen.
index(2) type N, " the screen index for certain item
begin type i, " from parameter of loop
end type i. " to parameter of loop
*in code sample, the DataTable-linindex stands for the table index number of this line
form calpage using FixedLine type i (see step 1)
LoopLine type i (see step 1)
FirstLine type i (see step 2)
DataLine type i ( this is the item number you will enter in transaction)
changing pageno type i (return the number of page, depends on run-time visible line in table control/ Step Loop)
changing line type i.(visible lines one the screen)
data: midd type i,
vline type i, "visible lines
if DataLine eq 0.
Message eXXX.
endif.
vline = ( sy-srows - FixedLine ) div LoopLine.
*for table control, you should compare vline with maximum line of
*table control, then take the small one that is min(vline, maximum)
*here only illustrate step loop
if FirstLine eq 0.
pageno = DataLine div vline.
if pageno eq 0.
pageno = pageno + 1.
endif.
elseif FirstLine eq 1.
pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
midd = ( DataLine - 1 ) mod ( vline - 1).
if midd = 0 and DataLine gt 1.
pageno = pageno - 1.
endif.
endif.
line = vline.
endform.
Step4 write a subroutine to calculate the line index for each item.
form calindex using Line type i (visible lines on the screen)
FirstLine type i(see step 2)
LineIndex type i(item index)
changing Index type n. (index on the screen)
if FirstLine = 0.
index = LineIndex mod Line.
if index = '00'.
index = Line.
endif.
elseif FirstLine = 1.
index = LineIndex mod ( Line - 1 ).
if ( index between 1 and 0 ) and LineIndex gt 1.
index = index + Line - 1.
endif.
if Line = 2.
index = index + Line - 1.
endif.
endif.
endform.
Step5 write a subroutine to calculate the loop range.
form calrange using Line type i ( visible lines on the screen)
DataLine type i
FirstLine type i
loopindex like sy-index
changing begin type i
end type i.
If FirstLine = 0.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loopindex gt 1.
begin = Line * ( loopindex - 1 ) + 1.
end = Line * loopindex.
if end gt DataLine.
end = DataLine.
endif.
endif.
elseif FirstLine = 1.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loop index gt 1.
begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
end = ( Line - 1 ) * ( loopindex - 1 ) + Line.
if end gt DataLine.
end = DataLine.
endif.
endif.
endif.
endform.
Step6
using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
form creat_bdc.
field-symbols: , , .
data: name1(14) value 'EKPO-EMATN(XX)',
name2(14) value 'EKPO-MENGE(XX)',
name3(15) value 'RM06E-SELKZ(XX)'.
assign: name1 to ,
name2 to ,
name3 to .
do pageno times.
if sy-index gt 1
*insert scroll page ok_code"
endif.
perform calrange using Line DataLine FirstLine sy-index
changing begin end.
loop at DataTable from begin to end.
perform calindex using Line FirstLine DataTable-LineIndex changing Index.
name1+11(2) = Index.
name2+11(2) = Index.
name3+12(2) = Index.
perform bdcfield using DataTable-matnr.
perform bdcfield using DataTable-menge.
perform bdcfield using DataTable-indicator.
endloop.
enddo.
example 1
BDC table control is an area on the screen in which you can display data in tabular form. You process it using a loop. Table controls are comparable to step loop tables. While a table control consists of a single definition row, step loop blocks may extend over more than one row. Table controls are more flexible than step loops, and are intended to replace them
When you need to handle a scenario like in sales order,it may contain more than one material,if you have more than one material We have to use table control,it will have number of columns and number of rows.
Table controls allow you to enter, display, and modify tabular data easily on the screen
Check this code,
PARAMETERS: file1 LIKE rlgrap-filename.
*Internal Table Declarations
DATA: BEGIN OF itab OCCURS 0,
matnr(18) TYPE c, "MaterialNumber
werks(4) TYPE c, "Plant
vdatu(10) TYPE c, "Valid From Date
bdatu(10) TYPE c, "Valid To Date
lifnr(10) TYPE c, "Vendor Number
ekorg(4) TYPE c, "Purchasing Organization
feskz TYPE c, "Fixed
autet TYPE c, "MRP Indicator
END OF itab.
DATA: bdcdata LIKE TABLE OF bdcdata WITH HEADER LINE.
*VARIABLES Declarations
DATA: wa1 LIKE LINE OF itab. "Workarea for ITAB
DATA: n TYPE i, "Check
count TYPE i.
DATA: cnt(2), "Counter
wa(15). "Workarea to hold concatenatedvalue
DATA v_msg(100).
DATA: flag.
DATA: file TYPE string.
*Initialization event
INITIALIZATION.
*At-selection-screen event
*To provide Input help for file name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR file1.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = file1.
*START-OF-SELECTION EVENT
START-OF-SELECTION.
MOVE file1 TO file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = itab
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.
*To populate BDCDATA and start data transfer
LOOP AT itab .
To validate Plant range
IF itab-werks = '1000' OR itab-werks = '2000'
OR itab-werks = '1008'.
AT NEW werks.
CLEAR: n.
cnt = 1.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0200'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EORD-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EORD-MATNR'
itab-matnr.
PERFORM bdc_field USING 'EORD-WERKS'
itab-werks.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
CONCATENATE 'EORD-EKORG(' cnt ')' INTO wa.
PERFORM bdc_field USING 'BDC_CURSOR'
wa.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
ENDAT.
IF n = 12.
READ TABLE bdcdata WITH KEY fval = '=BU'.
bdcdata-fval = '=NS'.
MODIFY bdcdata INDEX sy-tabix TRANSPORTING fval.
PERFORM bdc_dynpro USING 'SAPLMEOR' '0205'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EORD-VDATU(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
cnt = 2.
n = 2.
ENDIF.
CONCATENATE 'EORD-VDATU(' cnt ')' INTO wa.
PERFORM bdc_field USING wa
itab-vdatu.
CONCATENATE 'EORD-BDATU(' cnt ')' INTO wa.
PERFORM bdc_field USING wa
itab-bdatu.
CONCATENATE 'EORD-LIFNR(' cnt ')' INTO wa.
PERFORM bdc_field USING wa
itab-lifnr.
CONCATENATE 'EORD-EKORG(' cnt ')' INTO wa.
PERFORM bdc_field USING wa
itab-ekorg.
CONCATENATE 'RM06W-FESKZ(' cnt ')' INTO wa.
PERFORM bdc_field USING wa
itab-feskz.
CONCATENATE 'EORD-AUTET(' cnt ')' INTO wa.
PERFORM bdc_field USING wa
itab-autet.
IF n <> 12.
n = cnt.
ENDIF.
cnt = cnt + 1.
AT END OF werks.
CALL TRANSACTION 'ME01' USING bdcdata
UPDATE 'S'
MODE 'A'.
CLEAR:bdcdata,bdcdata[].
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = 'EN'
no = sy-msgno
v1 = sy-msgv1
v2 = sy-msgv2
v3 = sy-msgv3
v4 = sy-msgv4
IMPORTING
msg = v_msg.
WRITE:/ v_msg.
CLEAR: bdcdata,bdcdata[],flag.
ENDAT.
ENDIF.
ENDLOOP.
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
Insert field values
FORM bdc_field USING fnam fval.
IF NOT fval IS INITIAL.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
CLEAR wa.
ENDFORM.
Sample code 2
THis is example to upload the Bank details of the Vendor which has the TC.
REPORT zprataptable2
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA : BEGIN OF itab OCCURS 0,
i1 TYPE i,
lifnr LIKE rf02k-lifnr,
bukrs LIKE rf02k-bukrs,
ekorg LIKE rf02k-ekorg,
ktokk LIKE rf02k-ktokk,
anred LIKE lfa1-anred,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
akont LIKE lfb1-akont,
fdgrv LIKE lfb1-fdgrv,
waers LIKE lfm1-waers,
END OF itab.
DATA : BEGIN OF jtab OCCURS 0,
j1 TYPE i,
banks LIKE lfbk-banks,
bankl LIKE lfbk-bankl,
bankn LIKE lfbk-bankn,
END OF jtab.
DATA : cnt(4) TYPE n.
DATA : fdt(20) TYPE c.
DATA : c TYPE i.
INCLUDE bdcrecx1.
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\first1.txt'
filetype = 'DAT'
TABLES
data_tab = itab.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\second.txt'
filetype = 'DAT'
TABLES
data_tab = jtab.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
itab-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
itab-bukrs.
PERFORM bdc_field USING 'RF02K-EKORG'
itab-ekorg.
PERFORM bdc_field USING 'RF02K-KTOKK'
itab-ktokk.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-LAND1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
itab-anred.
PERFORM bdc_field USING 'LFA1-NAME1'
itab-name1.
PERFORM bdc_field USING 'LFA1-SORTL'
itab-sortl.
PERFORM bdc_field USING 'LFA1-LAND1'
itab-land1.
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
cnt = 0.
LOOP AT jtab WHERE j1 = itab-i1.
cnt = cnt + 1.
CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-banks.
CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankl.
CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankn.
IF cnt = 5.
cnt = 0.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
ENDIF.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-FDGRV'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
itab-akont.
PERFORM bdc_field USING 'LFB1-FDGRV'
itab-fdgrv.
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-ZTERM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB5-MAHNA'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFM1-WAERS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFM1-WAERS'
itab-waers.
PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM bdc_transaction USING 'XK01'.
ENDLOOP.
PERFORM close_group.
Header file:
1 63190 0001 0001 0001 mr bal188 b in 31000 a1 inr
2 63191 0001 0001 0001 mr bal189 b in 31000 a1 inr
TC file:
1 in sb 11000
1 in sb 12000
1 in sb 13000
1 in sb 14000
1 in sb 15000
1 in sb 16000
1 in sb 17000
1 in sb 18000
1 in sb 19000
1 in sb 20000
1 in sb 21000
1 in sb 22000
2 in sb 21000
2 in sb 22000
Regards -
How to use the prompted value in the filter expression
Hi
Is it possible to use the prompted value in the filter expression?
My requirement is that user will be prompted for a date field and I need to filter the records such that the records are displayed for the last 5 weeks from the date entered by the user.
If somehow I know how to use the prompted value in the filter expression then this requirement is easy to be done. If this is possible, please guide me?
If there are other ways to acheive the desired results then please suggest.
Thanks
-JazEdit: example added
SQL> create table tb_test
2 ( id number(5)
3 , tot number(5)
4 , mon_tot number generated always as (tot*15) virtual
5 );
Table created.
SQL> insert into tb_test (id, tot) values (1, 5);
1 row created.
SQL> select * from tb_test;
ID TOT MON_TOT
1 5 75
1 row selected.
SQL> update tb_test
2 set tot = 15
3 where id = 1;
1 row updated.
SQL> select * from tb_test;
ID TOT MON_TOT
1 15 225
1 row selected. -
How to use table control in LSMW
Hello All,
I have requirement to use LSMW , in my using transaction have table control ,I need to pass values in table control . how to use table control in LSMW .Can any one give me the solution for this.
Best regards,
Satya.Note: The recording function records a fixed screen sequence. It cannot be used for migrating data containing a variable number of items or for transactions with dynamic screen sequences!
Tip: It is possible to create a recording via SHDB, generate a program out of this recording, and adopt the program to your needs and registrate the program to be able to use it in LSMW.
Thats means, for creation of project and WBS Elements is not possible through
1. LSMW-BDC (For both CJ01 and CJ20n)
2. LSMW-BAPI (Method: Maintain is not listed )
3. LSME-Standard Batch Direct Input.
Its possible through programmatically(SE38.) either using BAPI Or BDC.
Thanks, -
Passing a table-field value in Crystal to a Store Procedure in SQL Server
I have been checking all over the interenet via searches and although some seem to come close to this, its still not what I want.
Essentially I need to pass value from Table-Field record (for each record read/selected) via a paramete to a Stored Procedure(SP) in SQL Server 2205/2008. I do NOT want to be prompted for a value for this parameter each time the report is run, simple pass the value in which will be used along with other select criteria to bring back one value for the report to use in a calcuation per record.
The value of the parameter is a date, but I understand it would be better to pass it in as a varchar(8) - 'YYYYMMDD' - and then reconvert it inside the SP, as follows:
In Crystal Reports 2008 SP3, I have a formula defined as,
trans_date = ToText ({F1ARS_STMT_WS_TRAN.TRANS_DATEI}, 'YYYYMMDD')
and essential just want to pass this to the SP below ... i.e. trans_date ---> @strTransDate
I then link the key fields [EXCH_RATE_TABLE_NAME] and [TRANS_CCY_CODE] to other tables in the Database Expert, and put [EXCH_RATE_AMT] on the report and use it to calculate what I want.
This works fine when the prompt comes up and I put in a proper date, but I don't what it to prompt, but simple pass the F1ARS_STMT_WS_TRAN.TRANS_DATEI in via the fornula/parameter and let teh SQL do the rest for each record selected..
CREATE PROCEDURE [dbo].sp_GET_EXCH_RATE_AMT (@strTransDate varchar(8)) --use format 'YYYYMMDD' to represent the date as a string.
-- Add the parameters for the stored procedure here
-- @TransDate datetime = now
AS
declare @TransDate datetime
set @TransDate = CONVERT(DATETIME, @strTransDate, 112)
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT [EXCH_RATE_TABLE_NAME], [TRANS_CCY_CODE], [EXCH_RATE_AMT]
FROM [F1CCY_EXCH_RATE]
WHERE [MAJOR_CCY_CODE] = 'BBD'
AND [START_DATEI] =
SELECT MAX([START_DATEI])
FROM [F1CCY_EXCH_RATE]
WHERE [MAJOR_CCY_CODE] = 'BBD'
AND [START_DATEI] <= @TransDate
END
GO
GRANT EXECUTE ON sp_GET_EXCH_RATE_AMT TO PUBLIC
GO
Thanks for any help. Can't tell the headache this has caused my both literally and figuratively.Hello,
I moved your post to the Report Design forum. Lots of SQL help in here...
I believe the problem is due to you using a Parameterized Stored Procedure. The first thing CR has to do is connect to your DB source which requires the date parameter before it can run the query to add the date filter, it's the SP that is prompting for the parameter. Therefore the report has not run so it can't get the field value from the report until you fill in the info for the SP. Catch 22 problem.... Which came first, the Chicken or the Parameter....
The report will work as you have noted but I don't know of anyway to refresh unless parameter is filled in again....
Jason has a lot of great solutions when it comes to these dilemmas, Possibly using a Command Object may help but I believe you will still run into the same issue....
Only way I can think of is to not use a parameter in the SP and let CR do the filtering client side. Of course this means all data is coming back to the client PC as you are likely trying to find a work around for.
Thank you
Don -
How to Assign a Field value to a Variable??
Dear All,
Kindly let me know, if <b>"HOW TO ASSIGN A FIELD VALUE TO A VARIABLE????"</b>
Situation is, we have a Field (OBJK-TASER) in which 2 tables (SER01 & SER03) are stored. And we want to access names of the Tables which are there in the field(TASER) in (OBJK) table to a variable and then passing that variable to the sql query as a table name to get data accessed dynamicaly.try this
select TASER from OBJK into table it_table.
loop at it_table.
select field1 field2 from (it_table-table) into table it_fields.
endloop -
Tracking the changes made to the custom table field value
Hi all,
can we track the changes made to the custom table field values. if yes..plz specify how it can be done.
Example: if i changed the value of field 'NAME' of table 'YYHCUSTOMER'. i would like to know the old value and the new value of the field. For this, I set the flag 'LOG DATA CHANGES' in the technical settings of the table 'YYHCUSTOMER'.-> try TA: SCU3
regards Andreas -
How to use table control in bdc briefly?
how to use table control in bdc briefly in description manner ?
Hi friend,
here i am giving exm. code of table control.see if help full to u.
REPORT zxk_01
NO STANDARD PAGE HEADING LINE-SIZE 255.
include bdcrecx1.
TYPES : BEGIN OF ty_data,
line(100) TYPE c,
END OF ty_data.
PARAMETERS: p_pcfile LIKE ibipparms-path DEFAULT 'D:\NKS.TXT'.
DATA : g_filename TYPE string.
TYPES : BEGIN OF ty_file,
lifnr(16) TYPE c, " vendor
bukrs(4) TYPE c, "company code
ktokk(4) TYPE c, " Acc grp
anred(15) TYPE c, " Title
name1(35) TYPE c, " name
sortl(10) TYPE c, " search term
stras(35) TYPE c, " street
ort01(35) TYPE c, " city
ort02(35) TYPE c, " district
land1(3) TYPE c, " country
pfach(10) TYPE c, " PO BOx
spras(2) TYPE c, " language
kunnr(10) TYPE c, " Customer
vbund(6) TYPE c, " trading partner
banks(3) TYPE c, " BANK COUNTRY
bankl(15) TYPE c, " BANK KEY
bankn(18) TYPE c, " BANK ACC
koinh(60) TYPE c, " ACC HOLDER
bkont(2) TYPE c, " CK
bvtyp(4) TYPE c, " BNKT
bkref(20) TYPE c, " REFERENCE DETAILS
namev(35) TYPE c, " first NAME
name2(35) TYPE c, " NAME
telf1(16) TYPE c, " TELEPHONE
abtnr(4) TYPE c, " DEPTT
pafkt(2) TYPE c, " FUNCTION
akont(10) TYPE c, " REC ACCOUNT
zuawa(3) TYPE c, " SORT KEY
lnrze(10) TYPE c, "HEAD OFFICE
fdgrv(10) TYPE c, " CASH MGMT GRP,
frgrp(4) TYPE c, " RELEASE GRP
zterm(4) TYPE c, " PAY TERMS
togru(4) TYPE c, " TOLERENCE GRP,
reprf, "CHECK DOUBLE INV
zwels(10) TYPE c, " PAYMENTS METHODS
zahls, " PAYMENTS BLOCK
hbkid(5) TYPE c, " house bank
zgrup(2) TYPE c, " grouping key
mahna(4) TYPE c, " dunn procedure
mansp, " DUNNING BLOCK'
gmvdt(10) TYPE c, " LEGAL DONE PROCEDURE
lfrma(10) TYPE c, " DUNN RECEPIENT
madat(10) TYPE c, " LAST DUNNED
mahns(1) TYPE c, " dunning level
mgrup(2) TYPE c, " grouping key
busab(2) TYPE c, "dunning clerk
END OF ty_file.
DATA : BEGIN OF it_xk01 OCCURS 0,
lifnr(16) TYPE c, " vendor
bukrs(4) TYPE c, "company code
ktokk(4) TYPE c, " Acc grp
anred(15) TYPE c, " Title
name1(35) TYPE c, " name
sortl(10) TYPE c, " search term
stras(35) TYPE c, " street
ort01(35) TYPE c, " city
ort02(35) TYPE c, " district
land1(3) TYPE c, " country
pfach(10) TYPE c, " PO BOx
spras(2) TYPE c, " language
kunnr(10) TYPE c, " Customer
vbund(6) TYPE c, " trading partner
akont(10) TYPE c, " REC ACCOUNT
zuawa(3) TYPE c, " SORT KEY
lnrze(10) TYPE c, "HEAD OFFICE
fdgrv(10) TYPE c, " CASH MGMT GRP,
frgrp(4) TYPE c, " RELEASE GRP
zterm(4) TYPE c, " PAY TERMS
togru(4) TYPE c, " TOLERENCE GRP,
reprf, "CHECK DOUBLE INV
zwels(10) TYPE c, " PAYMENTS METHODS
zahls, " PAYMENTS BLOCK
hbkid(5) TYPE c, " house bank
zgrup(2) TYPE c, " grouping key
mahna(4) TYPE c, " dunn procedure
mansp, " DUNNING BLOCK'
gmvdt(10) TYPE c, " LEGAL DONE PROCEDURE
lfrma(10) TYPE c, " DUNN RECEPIENT
madat(10) TYPE c, " LAST DUNNED
mahns(1) TYPE c, " dunning level
mgrup(2) TYPE c, " grouping key
busab(2) TYPE c, "dunning clerk
END OF it_xk01.
internal table for bank detaiils
DATA : BEGIN OF it_bank OCCURS 0,
banks(3) TYPE c, " BANK COUNTRY
bankl(15) TYPE c, " BANK KEY
bankn(18) TYPE c, " BANK ACC
koinh(60) TYPE c, " ACC HOLDER
bkont(2) TYPE c, " CK
bvtyp(4) TYPE c, " BNKT
bkref(20) TYPE c, " REFERENCE DETAILS
lifnr(16) TYPE c, " vendor
xezer, " CHECK
END OF it_bank.
INTERNAL TABLE FOR CONTACT PERSON
TYPES : BEGIN OF ty_cust,
lifnr(16) TYPE c,
namev(35) TYPE c, " first NAME
name1(35) TYPE c, " NAME
telf1(16) TYPE c, " TELEPHONE
abtnr(4) TYPE c, " DEPTT
pafkt(2) TYPE c, " FUNCTION
END OF ty_cust.
INTERNAL TABLES DECLARATION
DATA : it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,
it_bdcmsgcoll LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE,
it_file TYPE TABLE OF ty_file,
it_data TYPE TABLE OF ty_data,
it_cust TYPE TABLE OF ty_cust.
WORK AREAS FOR TYPES
DATA : wa_xk01 LIKE it_xk01,
wa_data TYPE ty_data,
wa_file TYPE ty_file,
wa_bank LIKE it_bank,
wa_cust TYPE ty_cust.
*CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = lt_file
filetype = 'ASC'
CHANGING
data_tab = iT_DATA.
IF sy-subrc <> 0.
ENDIF.
g_filename = p_pcfile.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = g_filename "'D:\TESTDATA1_XK01.txt'
filetype = 'TXT'
has_field_separator = 'X'
HEADER_LENGTH = 0
read_by_line = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
replacement = ' '
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_file
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.
LOOP AT it_file INTO wa_file .
ON CHANGE OF WA_FILE-LIFNR.
wa_xk01-lifnr = wa_file-lifnr.
wa_xk01-bukrs = wa_file-bukrs.
wa_xk01-ktokk = wa_file-ktokk.
wa_xk01-anred = wa_file-anred.
wa_xk01-name1 = wa_file-name1.
wa_xk01-sortl = wa_file-sortl.
wa_xk01-stras = wa_file-stras.
wa_xk01-ort01 = wa_file-ort01.
wa_xk01-ort02 = wa_file-ort02.
wa_xk01-land1 = wa_file-land1.
wa_xk01-pfach = wa_file-pfach.
wa_xk01-spras = wa_file-spras.
wa_xk01-kunnr = wa_file-kunnr.
wa_xk01-vbund = wa_file-vbund.
wa_xk01-akont = wa_file-akont.
wa_xk01-zuawa = wa_file-zuawa.
wa_xk01-lnrze = wa_file-lnrze.
wa_xk01-fdgrv = wa_file-fdgrv.
wa_xk01-frgrp = wa_file-frgrp.
wa_xk01-zterm = wa_file-zterm.
wa_xk01-togru = wa_file-togru.
wa_xk01-reprf = wa_file-reprf.
wa_xk01-zwels = wa_file-zwels.
wa_xk01-zahls = wa_file-zahls.
wa_xk01-hbkid = wa_file-hbkid.
wa_xk01-zgrup = wa_file-zgrup.
wa_xk01-mahna = wa_file-mahna.
wa_xk01-mansp = wa_file-mansp.
wa_xk01-gmvdt = wa_file-gmvdt.
wa_xk01-lfrma = wa_file-lfrma.
wa_xk01-madat = wa_file-madat.
wa_xk01-mahns = wa_file-mahns.
wa_xk01-mgrup = wa_file-mgrup.
wa_xk01-busab = wa_file-busab.
APPEND wa_xk01 TO it_xk01.
CLEAR : WA_XK01.
CONTINUE.
ENDON.
IF WA_FILE-BANKS NE ''.
wa_bank-lifnr = wa_file-lifnr.
wa_bank-banks = wa_file-banks.
wa_bank-bankl = wa_file-bankl.
wa_bank-bankn = wa_file-bankn.
wa_bank-koinh = wa_file-koinh.
wa_bank-bkont = wa_file-bkont.
wa_bank-bvtyp = wa_file-bvtyp.
wa_bank-bkref = wa_file-bkref.
wa_cust-lifnr = wa_file-lifnr.
wa_cust-namev = wa_file-namev.
wa_cust-name1 = wa_file-name2.
wa_cust-telf1 = wa_file-telf1.
wa_cust-abtnr = wa_file-abtnr.
wa_cust-pafkt = wa_file-pafkt.
APPEND wa_bank TO it_bank.
APPEND wa_cust TO it_cust.
APPEND wa_xk01 TO it_xk01.
CLEAR : wa_bank , wa_cust.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
LOOP AT it_xk01 INTO wa_xk01.
REFRESH it_bdcdata.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
wa_xk01-lifnr. " vendor
PERFORM bdc_field USING 'RF02K-BUKRS'
wa_xk01-bukrs. " company cpode
PERFORM bdc_field USING 'RF02K-KTOKK'
wa_xk01-ktokk. " Acc group
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
wa_xk01-anred. " title
PERFORM bdc_field USING 'LFA1-NAME1'
wa_xk01-name1. " name
PERFORM bdc_field USING 'LFA1-SORTL'
wa_xk01-sortl. " ' search term'
PERFORM bdc_field USING 'LFA1-STRAS'
wa_xk01-stras. "street'
PERFORM bdc_field USING 'LFA1-PFACH'
wa_xk01-pfach. " po box
PERFORM bdc_field USING 'LFA1-ORT01'
wa_xk01-ort01. " city
PERFORM bdc_field USING 'LFA1-ORT02'
wa_xk01-ort02. " district
PERFORM bdc_field USING 'LFA1-LAND1'
wa_xk01-land1. " country
PERFORM bdc_field USING 'LFA1-SPRAS'
wa_xk01-spras. " language
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-VBUND'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-KUNNR' " customer
wa_xk01-kunnr.
PERFORM bdc_field USING 'LFA1-VBUND'
wa_xk01-vbund. " trading partner
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BKREF(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
DATA : fnam(20) TYPE c,
int TYPE c.
MOVE 1 TO int.
CLEAR wa_bank.
LOOP AT it_bank INTO wa_bank WHERE lifnr = wa_xk01-lifnr.
CONCATENATE 'LFBK-BANKS(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-banks. " city
CONCATENATE 'LFBK-BANKL(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-bankl.
CONCATENATE 'LFBK-BANKN(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-bankn.
CONCATENATE 'LFBK-KOINH(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-koinh.
CONCATENATE 'LFBK-BKONT(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-bkont.
CONCATENATE 'LFBK-BVTYP(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-bvtyp.
CONCATENATE 'LFBK-BKREF(' int ')' INTO fnam.
PERFORM bdc_field USING fnam
wa_bank-bkref.
int = int + 1.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0380'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVK-PAFKT(05)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
DATA : fnam1(20) TYPE c,
cnt.
cnt = 1.
CLEAR : wa_cust.
LOOP AT it_cust INTO wa_cust WHERE lifnr = wa_xk01-lifnr.
CONCATENATE 'KNVK-NAMEV(' cnt ')' INTO fnam1.
PERFORM bdc_field USING fnam1
wa_cust-namev.
CONCATENATE 'KNVK-NAME1(' cnt ')' INTO fnam1.
PERFORM bdc_field USING fnam1
wa_cust-name1.
CONCATENATE 'KNVK-TELF1(' cnt ')' INTO fnam1.
PERFORM bdc_field USING fnam1
wa_cust-telf1.
CONCATENATE 'KNVK-ABTNR(' cnt ')' INTO fnam1.
PERFORM bdc_field USING fnam1
wa_cust-abtnr.
CONCATENATE 'KNVK-PAFKT(' cnt ')' INTO fnam1.
PERFORM bdc_field USING fnam1
wa_cust-pafkt.
cnt = cnt + 1.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF02K' '0380'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-FRGRP'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
wa_xk01-akont. " REC aCC
PERFORM bdc_field USING 'LFB1-ZUAWA'
wa_xk01-zuawa. " SORT KEY
PERFORM bdc_field USING 'LFB1-LNRZE'
wa_xk01-lnrze. " HEAD OFFICE
PERFORM bdc_field USING 'LFB1-FDGRV'
wa_xk01-fdgrv. " CASH MGMT GRP
PERFORM bdc_field USING 'LFB1-FRGRP'
wa_xk01-frgrp. " RELEASE GRP
PERFORM bdc_field USING 'LFB1-CERDT'
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-ZGRUP'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-ZTERM'
wa_xk01-zterm. " PAYMENT TERMS'
PERFORM bdc_field USING 'LFB1-TOGRU'
wa_xk01-togru. " TOLERENCE GRP
PERFORM bdc_field USING 'LFB1-REPRF'
wa_xk01-reprf. " CHECK DOUBLE INV
PERFORM bdc_field USING 'LFB1-ZWELS'
wa_xk01-zwels. " PAYMENT METHOD
PERFORM bdc_field USING 'LFB1-ZAHLS'
wa_xk01-zahls. " PAYMENT BLOCK
PERFORM bdc_field USING 'LFB1-HBKID'
wa_xk01-hbkid. " HOUSE BANK
PERFORM bdc_field USING 'LFB1-ZGRUP'
wa_xk01-zgrup. " GROUPING KEY
PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB5-BUSAB'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB5-MAHNA'
wa_xk01-mahna. " DUNN PROCEDURE
PERFORM bdc_field USING 'LFB5-MANSP'
wa_xk01-mansp. " DUNNING BLOCK
PERFORM bdc_field USING 'LFB5-LFRMA'
wa_xk01-lfrma. " Dunn representative
PERFORM bdc_field USING 'LFB5-GMVDT'
wa_xk01-gmvdt. " legal dunn proc
PERFORM bdc_field USING 'LFB5-MADAT'
wa_xk01-madat. " last dunned
PERFORM bdc_field USING 'LFB5-MAHNS'
wa_xk01-mahns. " dunn level
PERFORM bdc_field USING 'LFB5-BUSAB'
wa_xk01-busab. " dunning clerk
PERFORM bdc_field USING 'LFB1-MGRUP'
wa_xk01-mgrup. " grouping key
CALL TRANSACTION 'XK01' USING it_bdcdata
MODE 'A'.
ENDLOOP.
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR it_bdcdata.
it_bdcdata-program = program.
it_bdcdata-dynpro = dynpro.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
ENDFORM. "BDC_DYNPRO
Insert field
FORM bdc_field USING fnam fval TYPE any.
CLEAR it_bdcdata.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
APPEND it_bdcdata.
ENDFORM. "bdc_field
*perform close_group. -
How to find table & fields of standard InfoObject?
Hi
How to find table & fields of standard InfoObject for creating generic DataSource?
e.g. I want to know the table & field of 0MAINTPOS infoObject.You can get the list of tables involved in a particular DS by using the below method ( this another approach)
--> RSA3 -- enter your DS ( execute later)
--> Goto Tcode ST05 --> switch on the SQL Trace
--> now execute the extract checker in RSA3.once done switch off(deactivate) the SQL trace.
--> in st05 screen you can find the button "Display Trace" -- execute (here make sure SQL trace button is enabled.
--> from the menu bar -->Trace list--> select "combined table accesses".
--> it will display the tables involved in it -- check for TABLE names section.... select that row Table names -- click on filter button --press F4 -- here we go it will display the list of entire tables involved in the extraction activity... here you need to sort the tables which are related to your DS.
Maybe you are looking for
-
Server Process is not running in the WAS JAVA
Hi, The WAS JAVA have the resources Netweaver7.0 and java is j2sdk1.4.2_13 version Operating system is Windows2003 and database server is SQLserver2005. Previously it was running properly Now it giving the following Error. Any one of you please give
-
Abt web.show_document in forms 10g
hi, i am trying to call the following code in forms 10g web.Show_document('javascript:alert("hello world")','_blank'); but its not working ,plz help me !!! ThanX in Advace chandra
-
Change the Formula in Web Intelligence Document using BO SDK XI
Dear All, I am using Business Object Enterprise XI SDK. I have written vb.net SDK program to show the selected web intelligence document. I have used the formula field in the web Intel. document. I want to change formula of the web inte
-
Indesign crashes on opening (Quit unexpededly notice) CS5
Indesign crashes immediately on opening. Several times saying it is corrupted but recently just 'quit unexpectedly' This began after moving all software & files from old macbook to new Imac, Is there a way I can uninstall then re install just Indesig
-
Non-destructive RAID 1 setup?
Hi, I have a Power Mac G5 running 10.5.8 with a 320GB OS drive and a 1TB data drive. Can I install matching 320GB & 1TB drives and setup two RAID 1 mirrors of both drives without losing any data?