Standalone Program for Accessing MDM Table
Hi,
I am trying access to MDM table using standalone java program but it is giving error. Is it possible?
If it is possible means tell me the steps or post sample codes.
Thanks in advance
Regards
Suresh
Hello:
I have a piece of code here, even tough I believe it would be easier if you could explain a little more about your problem.
First I create properties for connection. I'm using strings however this can be done also setting properties directly:
String server = "MDMServer";
int port = 2005;
String user = "admin";
String password = "thePassword";
String language = "Spanish [MX]"; // languaje and local you want to use
// THen you choose the region and attempt to login. Please note that even tough I choose region US, I log as a MX user, as provided by the language property
CatalogData mdmBridge = new CatalogData();
mdmBridge.SetCodeRegion("English [US]"); mdmBridge.Login(server,port,user,password,language);
// also note that the catalogData object is the main entrance, now create an array for MDMTables:
CMTableInfoArray tables = null;
// and attempt to get them:
AttributeInfoArray fields = mdmBridge.GetLinkedAttributesForTaxonomy("Categories",6,false);
System.out.println("Counts: " + fields.GetCount());
// Traverse:
for (int i = 0; i < fields.GetCount(); i++)
AttributeInfo att = fields.GetAttributeInfoAt(i);
System.out.println("NAME: " + att.GetName());
// In this case I'm getting a taxonomy table, such as "Categories". However you could use any other type of tables. Finally I get the contents of this table:
// Attempt to get the categories A2iStringArray array = new A2iStringArray();
array.Add("Filter");
ResultSetDefinition rsd = new ResultSetDefinition("Categories");
rsd.AddField("Id");
A2iResultSet rs = mdmBridge.GetRecordsByValue(array,rsd,"Id");
for(int i = 0; i < rs.GetRecordCount(); i++) {
Value v = rs.GetValueAt(i,0);
System.out.println(v.GetStringValue());
Please review the MDM API for java for further info.
I hope that helps
Alejandro
Similar Messages
-
Dear Experts,
We have are experiencing issues in standalone scrambling,
we are getting error" ITAB_NON_NUMERIC_COMPONENT" in the "generation of
scrambling programs for non-cluster tables"
Please help with the needful
urgently.
ThanksHello,
Implement the following SAP note in the execution system and re-execute the
activity 'Generation of scrambling programs for non-cluster tables' to solve this issue.
SAP NOTE : '1915906 - SAP LT V2 SP06: Dump during program generation'
Regards,
Jerrin Francis -
BDC program for rebate with table controls
Hi Friends,
Iam Doing bdc program for Rebate(TCODE VBO1) with table controls..
can u give the solutions for table controls...
if anybody having the code..please send me..
Thanks & Advance,
sampathhi,
check this example it may help you.
REPORT ZSR_BDC_TBCTRL
NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES : RF02K,LFA1,LFBK.
DATA : BEGIN OF IT_VEN OCCURS 0,
LIFNR LIKE RF02K-LIFNR,
KTOKK LIKE RF02K-KTOKK,
NAME1 LIKE LFA1-NAME1,
SORTL LIKE LFA1-SORTL,
LAND1 LIKE LFA1-LAND1,
SPRAS LIKE LFA1-SPRAS,
BANKS(6) TYPE C,
BANKL(17) TYPE C,
BANKN(19) TYPE C,
END OF IT_VEN.
DATA : BEGIN OF BANKS OCCURS 0,
BANKS LIKE LFBK-BANKS,
END OF BANKS,
BEGIN OF BANKL OCCURS 0,
BANKL LIKE LFBK-BANKL,
END OF BANKL,
BEGIN OF BANKN OCCURS 0,
BANKN LIKE LFBK-BANKN,
END OF BANKN.
DATA : FLD(20) TYPE C,
CNT(2) TYPE N.
DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
INCLUDE BDCRECX1.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'Z:\sr.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = IT_VEN
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.
PERFORM OPEN_GROUP.
LOOP AT IT_VEN.
REFRESH BDCDATA.
REFRESH : BANKS,BANKL,BANKN..
SPLIT IT_VEN-BANKS AT ',' INTO TABLE BANKS.
SPLIT IT_VEN-BANKL AT ',' INTO TABLE BANKL.
SPLIT IT_VEN-BANKN AT ',' INTO TABLE BANKN.
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'
IT_VEN-LIFNR.
PERFORM BDC_FIELD USING 'RF02K-KTOKK'
IT_VEN-KTOKK.
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-NAME1'
IT_VEN-NAME1.
PERFORM BDC_FIELD USING 'LFA1-SORTL'
IT_VEN-SORTL.
PERFORM BDC_FIELD USING 'LFA1-LAND1'
IT_VEN-LAND1.
PERFORM BDC_FIELD USING 'LFA1-SPRAS'
IT_VEN-SPRAS.
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(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
*perform bdc_field using 'LFBK-BANKS(01)'
'DE'.
*perform bdc_field using 'LFBK-BANKS(02)'
'DE'.
*perform bdc_field using 'LFBK-BANKL(01)'
'10020030'.
*perform bdc_field using 'LFBK-BANKL(02)'
'67270003'.
*perform bdc_field using 'LFBK-BANKN(01)'
'12345'.
*perform bdc_field using 'LFBK-BANKN(02)'
'66666'.
MOVE 1 TO CNT.
LOOP AT BANKS.
CONCATENATE 'LFBK-BANKS(' CNT ') ' INTO FLD.
PERFORM BDC_FIELD USING FLD BANKS-BANKS.
CNT = CNT + 1.
ENDLOOP.
MOVE 1 TO CNT.
LOOP AT BANKL.
CONCATENATE 'LFBK-BANKL(' CNT ') ' INTO FLD.
PERFORM BDC_FIELD USING FLD BANKL-BANKL.
CNT = CNT + 1.
ENDLOOP.
MOVE 1 TO CNT.
LOOP AT BANKN.
CONCATENATE 'LFBK-BANKN(' CNT ') ' INTO FLD.
PERFORM BDC_FIELD USING FLD BANKN-BANKN.
CNT = CNT + 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 'SAPLSPO1' '0300'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=YES'.
PERFORM BDC_TRANSACTION USING 'XK01'.
ENDLOOP.
PERFORM CLOSE_GROUP.&----
*& Report ZSR_BDC_TBCTRL
REPORT ZSR_BDC_TBCTRL
NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES : RF02K,LFA1,LFBK.
DATA : BEGIN OF IT_VEN OCCURS 0,
LIFNR LIKE RF02K-LIFNR,
KTOKK LIKE RF02K-KTOKK,
NAME1 LIKE LFA1-NAME1,
SORTL LIKE LFA1-SORTL,
LAND1 LIKE LFA1-LAND1,
SPRAS LIKE LFA1-SPRAS,
BANKS(6) TYPE C,
BANKL(17) TYPE C,
BANKN(19) TYPE C,
END OF IT_VEN.
DATA : BEGIN OF BANKS OCCURS 0,
BANKS LIKE LFBK-BANKS,
END OF BANKS,
BEGIN OF BANKL OCCURS 0,
BANKL LIKE LFBK-BANKL,
END OF BANKL,
BEGIN OF BANKN OCCURS 0,
BANKN LIKE LFBK-BANKN,
END OF BANKN.
DATA : FLD(20) TYPE C,
CNT(2) TYPE N.
DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
INCLUDE BDCRECX1.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'Z:\sr.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = IT_VEN
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.
PERFORM OPEN_GROUP.
LOOP AT IT_VEN.
REFRESH BDCDATA.
REFRESH : BANKS,BANKL,BANKN..
SPLIT IT_VEN-BANKS AT ',' INTO TABLE BANKS.
SPLIT IT_VEN-BANKL AT ',' INTO TABLE BANKL.
SPLIT IT_VEN-BANKN AT ',' INTO TABLE BANKN.
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'
IT_VEN-LIFNR.
PERFORM BDC_FIELD USING 'RF02K-KTOKK'
IT_VEN-KTOKK.
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-NAME1'
IT_VEN-NAME1.
PERFORM BDC_FIELD USING 'LFA1-SORTL'
IT_VEN-SORTL.
PERFORM BDC_FIELD USING 'LFA1-LAND1'
IT_VEN-LAND1.
PERFORM BDC_FIELD USING 'LFA1-SPRAS'
IT_VEN-SPRAS.
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(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
*perform bdc_field using 'LFBK-BANKS(01)'
'DE'.
*perform bdc_field using 'LFBK-BANKS(02)'
'DE'.
*perform bdc_field using 'LFBK-BANKL(01)'
'10020030'.
*perform bdc_field using 'LFBK-BANKL(02)'
'67270003'.
*perform bdc_field using 'LFBK-BANKN(01)'
'12345'.
*perform bdc_field using 'LFBK-BANKN(02)'
'66666'.
MOVE 1 TO CNT.
LOOP AT BANKS.
CONCATENATE 'LFBK-BANKS(' CNT ') ' INTO FLD.
PERFORM BDC_FIELD USING FLD BANKS-BANKS.
CNT = CNT + 1.
ENDLOOP.
MOVE 1 TO CNT.
LOOP AT BANKL.
CONCATENATE 'LFBK-BANKL(' CNT ') ' INTO FLD.
PERFORM BDC_FIELD USING FLD BANKL-BANKL.
CNT = CNT + 1.
ENDLOOP.
MOVE 1 TO CNT.
LOOP AT BANKN.
CONCATENATE 'LFBK-BANKN(' CNT ') ' INTO FLD.
PERFORM BDC_FIELD USING FLD BANKN-BANKN.
CNT = CNT + 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 'SAPLSPO1' '0300'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=YES'.
PERFORM BDC_TRANSACTION USING 'XK01'.
ENDLOOP.
PERFORM CLOSE_GROUP. -
Problem for Accessing the Table BDCP..CDPOS..CDHDR..
Hi Guys,
i have the problem of accessing the BDCP table.it is working fine in development and testing server.it is taking more time in background in Production server..can anyone help me to optimize this code and please suggest me if i can change anyof the below logic..
Thanks a lot in advance.
LOOP AT t_cdobjid.
objectid-low = t_cdobjid-cdobjid.
objectid-sign = 'I'.
objectid-option = 'EQ' .
APPEND objectid.
CLEAR objectid.
count = count + 1.
IF count = 50.
CLEAR count.
SELECT * FROM bdcp APPENDING TABLE t_bdcp
WHERE cretime IN r_cretime AND
tabname = 'DMEAN' AND
fldname = 'KEY' AND
cdobjid IN objectid.
CLEAR : objectid.
REFRESH: objectid.
ENDIF.
ENDLOOP.
IF NOT objectid[] IS INITIAL.
SELECT * FROM bdcp APPENDING TABLE t_bdcp
WHERE cretime IN r_cretime AND
tabname = 'DMEAN' AND
fldname = 'KEY' AND
cdobjid IN objectid.
CLEAR : objectid.
REFRESH: objectid.
ENDIF.
IF NOT t_bdcp[] IS INITIAL.
t_bdcp_val[] = t_bdcp[].
DESCRIBE TABLE t_bdcp_val LINES l_lines.
l_max = 50.
l_mod = l_lines MOD l_max.
IF l_mod > 0.
l_loopcount = ( l_lines DIV l_max ) + 1.
ELSE .
l_loopcount = l_lines DIV l_max.
ENDIF.
DO l_loopcount TIMES.
CLEAR t_bdcp_emt.
REFRESH t_bdcp_emt.
IF sy-index = l_loopcount.
t_bdcp_emt[] = t_bdcp_val[].
ELSE.
APPEND LINES OF t_bdcp_val FROM 1 TO l_max TO t_bdcp_emt.
DELETE t_bdcp_val FROM 1 TO l_max.
ENDIF.
SELECT * FROM cdpos APPENDING TABLE t_cdpos_upc
FOR ALL ENTRIES IN t_bdcp_emt
WHERE
objectclas = 'MATERIAL' AND
objectid = t_bdcp_emt-cdobjid AND
changenr = t_bdcp_emt-cdchgno AND
tabname IN ('DMEAN', 'MARA' ) AND
fname IN ('KEY', 'EAN11' ) .
ENDDO.
CLEAR : l_lines ,
l_mod ,
l_loopcount.
IF sy-subrc EQ 0.
IF NOT t_cdpos_upc[] IS INITIAL.
t_cdpos_del[] = t_cdpos_upc[] .
DELETE t_cdpos_del WHERE tabname EQ 'MARA' .
SORT t_cdpos_del BY changenr .
LOOP AT t_cdpos_upc .
READ TABLE t_cdpos_del WITH KEY
changenr = t_cdpos_upc-changenr
BINARY SEARCH .
IF sy-subrc EQ 0 AND
t_cdpos_upc-chngind = 'U' .
DELETE t_cdpos_upc WHERE changenr = t_cdpos_upc-changenr
AND chngind = 'D' .
ENDIF.
t_upc_matnr-matnr = t_cdpos_upc-objectid .
APPEND t_upc_matnr .
ENDLOOP.
SORT t_upc_matnr BY matnr .
DELETE ADJACENT DUPLICATES FROM t_upc_matnr COMPARING matnr .
IF NOT t_cdpos_upc[] IS INITIAL.
t_cdpos_upc_val[] = t_cdpos_upc[].
DESCRIBE TABLE t_cdpos_upc_val LINES l_lines.
l_max = 50.
l_mod = l_lines MOD l_max.
IF l_mod > 0.
l_loopcount = ( l_lines DIV l_max ) + 1.
ELSE .
l_loopcount = l_lines DIV l_max.
ENDIF.
DO l_loopcount TIMES.
CLEAR t_cdpos_upc_emt.
REFRESH t_cdpos_upc_emt.
IF sy-index = l_loopcount.
t_cdpos_upc_emt[] = t_cdpos_upc_val[].
ELSE.
APPEND LINES OF t_cdpos_upc_val FROM 1 TO l_max TO
t_cdpos_upc_emt.
DELETE t_cdpos_upc_val FROM 1 TO l_max.
ENDIF.
SELECT * FROM cdhdr APPENDING TABLE it_cdhdr_upc
FOR ALL ENTRIES IN t_cdpos_upc_emt
WHERE objectclas EQ 'MATERIAL'
AND objectid = t_cdpos_upc_emt-objectid
AND changenr = t_cdpos_upc_emt-changenr.
ENDDO.
ENDIF.
PrabhuUse the PACKAGE SIZE oprion of the SELECT statement:
LOOP AT t_cdobjid.
objectid-low = t_cdobjid-cdobjid.
objectid-sign = 'I'.
objectid-option = 'EQ' .
APPEND objectid.
CLEAR objectid.
ENDLOOP.
SELECT * FROM bdcp APPENDING TABLE t_bdcp
PACKAGE SIZE 5000
WHERE cretime IN r_cretim AND
tabname = 'DMEAN' AND
fldname = 'KEY' AND
cdobjid IN objectid.
ENDSELECT.
IF NOT objectid[] IS INITIAL. -
Program for deletion of table content.
Hi,
I have a requirement to delete the contents of table RSBERRORLOG , i cannot do it directly from table content delete option due to lack of authorisation. Is there any program that can be used for deletion of tabel contents ?
Thanks .Hi,
you can delete the RSBERRORLOG table by using the RSBM_ERRORLOG_DELETE report.
Additional info:
You can use the report RSB_ANALYZE_ERRORLOG to analyze which DTPs have created how many single record error messages, and to how many requests these messages are distributed. You can use the report RSBM_ERRORLOG_DELETE for single DTPs to delete the messages for requests up to a specified date.
If numerous single record errors are frequently created for specific DTPs, you should analyze the relevant requests in more detail and, if required, eliminate the error cause (for example, adjusting the transformation routines).
Regards
Andreas -
Writing a java program to access SAP tables using SAP JCO
Hi all,
I have a requirement where I need to access the VBAK table and get some values out of it based on a query on some of it fields. I would like to know how this can be done via a Java program by utilising the SAP JCo library. Has anyone done this before? A sample program would be very helpful.
Thanks in advance!Hi SAM,
Welcome to SDN!!!!!!
Chk this help doc.
http://help.sap.com/saphelp_nw04/helpdata/en/35/42e13d82fcfb34e10000000a114084/frameset.htm
Also chk these thread.
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8798be90-0201-0010-d093-85f728778d37
Re: How to access SAP database tables with Java (Jco)
Regards.
Maha -
Table control program for updating database table
Does anybody have a sample code for a table control program which can insert/delete/update a database table?
I mean like on the output on table control, if the user insert/delete/update the records, the corresponding records will be updated in database table also.
Appreciate your input.
Thanks.hi nuren,
TABLES: kna1,knbk.
DATA: v_kunnr LIKE kna1-kunnr.
DATA: v_check TYPE c.
DATA: BEGIN OF it_knbk OCCURS 0,
banks LIKE knbk-banks,
bankl LIKE knbk-bankl,
bankn LIKE knbk-bankn,
bkont LIKE knbk-bkont,
koinh LIKE knbk-koinh,
chk TYPE c,
END OF it_knbk.
DATA: v_ucomm TYPE sy-ucomm,
v_dynnr TYPE sy-dynnr.
DATA: l_index TYPE sy-index.
data: count type i.
CONTROLS: tc1 TYPE TABLEVIEW USING SCREEN 0200.
*& Module STATUS_0100 OUTPUT
text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ABC'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
MODULE user_command_0100 INPUT.
v_ucomm = sy-ucomm.
CASE v_ucomm.
WHEN 'DISP' OR 'CHNG'.
IF v_kunnr <> space.
SELECT banks
bankl
bankn
bkont
koinh
FROM knbk
INTO TABLE it_knbk
WHERE kunnr = v_kunnr.
LEAVE TO SCREEN '0200'.
ENDIF.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module MOD_KUNNR INPUT
text
MODULE mod_kunnr INPUT.
IF NOT v_kunnr IS INITIAL.
SELECT SINGLE
kunnr
FROM kna1
INTO v_kunnr
WHERE kunnr = v_kunnr.
IF sy-subrc <> 0.
MESSAGE e000(zz) WITH 'INCORRECT CUSTOMER NUMBER'.
ENDIF.
ENDIF.
IF v_kunnr IS INITIAL.
MESSAGE e000(zz) WITH 'PLEASE ENTER A VALUE'.
ENDIF.
ENDMODULE. " MOD_KUNNR INPUT
*& Module STATUS_0200 OUTPUT
text
MODULE status_0200 OUTPUT.
SET PF-STATUS 'ABC1'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0200 OUTPUT
*& Module SCREENMOD OUTPUT
text
MODULE screenmod OUTPUT.
IF v_ucomm = 'DISP'.
LOOP AT SCREEN.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ELSE."if v_UCOMM = 'CHNG'.
LOOP AT SCREEN.
IF screen-group1 = 'G1'.
screen-input = 0.
ELSE.
screen-input = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
endif.
if sy-ucomm = 'INSE'.
loop at screen.
IF ( tc1-current_line <> tc1-lines ).
screen-input = 0.
else.
screen-input = 1.
modify screen.
endif.
endloop.
endif.
ENDMODULE. " SCREENMOD OUTPUT
*& Module EXIT2 INPUT
text
MODULE exit2 INPUT.
LEAVE TO SCREEN 0.
ENDMODULE. " EXIT2 INPUT
*& Module modify INPUT
text
MODULE modify INPUT.
IF v_check = 'X'.
it_knbk-chk = 'X'.
MODIFY it_knbk index tc1-current_line.
ELSE.
CLEAR it_knbk-chk .
ENDIF.
ENDMODULE. " modify INPUT
*& Module USER_COMMAND_0200 INPUT
text
MODULE user_command_0200 INPUT.
v_ucomm = sy-ucomm.
CASE v_ucomm.
WHEN 'DELE'.
DELETE it_knbk where chk eq 'X'.
DESCRIBE TABLE it_knbk LINES tc1-lines.
WHEN 'INSE'.
CLEAR it_knbk.
APPEND it_knbk.
DESCRIBE TABLE it_knbk LINES tc1-lines.
WHEN 'LIST'.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN '0200'.
WRITE 'Report'.
WHEN 'BACK'.
LEAVE TO SCREEN '0100'.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*& Module validate INPUT
text
module validate input.
IF IT_KNBK IS INITIAL.
MESSAGE E000(ZZ) WITH 'A BLANK LINE CANNOT BE SAVED'.
ENDIF.
endmodule. " validate INPUT -
Interface Program for maintaining a table
Hi Experts,
I am having a requirement,.,cud u please tell me how to proceed.
1. We have a table and maintaining manually.
2. we need a Interface to do it.
3. If i create a record with " Create with a template ..user id and a date field in the table should be disabled to change and others can be changed.
in betwen i need to check some conditions in methods .
after checking this ..the method gives the number of records that are getting affected in the final table.
Please let me know if some one has faced this kind of issue.
Thanks,
VarunHi,
generate table view. Own form routines to disable rows or setting defaults values can be added. Pelase refer to SAPDOCU:
ABAP Workbench (BC-DWB)/ BC Extended Applications Function Library / BC Extended Applications Function Library
for details.
Kind regards,
HP -
Techniques for accessing CLUSTER tables
Can some 1 plz tell me , How many standard methods are there to access a cluster table. I want to know each and every method with example.1 method is Logical databases , 2nd is thrugh se16. But I want to know each and every.
My cluster tables are
1) ZNO_CT1 having fields (mandt , roll_no , Name)
2) ZNO_CT2 having fields (mandt , roll_no , Age)
AND these are assigned to the table cluster 'ZNO_CLUST'.
ZNO_CLUST has (mandt , roll_no , pageno , timestamp , VARDATA)Hi,
You can find the methods below.
Just go thru this link-
http://dev.mysql.com/doc/ndbapi/en/class-table.html
Thanks
Do reward points if useful -
Hi...
3....how to create table maintanence generator for a z table and how to use that for transfering a selected records to one server to another server.
thanks and regards,
k.swaminath reddyHi,
Table maintanance Generator is used to manually
input values using transaction sm30.The Table Maintenance Generator is used to create table maintenance program to add, modify or delete records in the database table. This can be accessed using transaction SE54 or in SE11 using the menu Utilities->Table Maintenance Generator
<b>
Follow below steps</b>
go to se11 check table maintanance check box under
attributes tab
utilities-table maintanance Generator->
create function group and assign it under
function group input box.
also assign authorization group default &NC& .
select standard recording routine radio in table
table mainitainence generator to move table
contents to quality and production by assigning
it to request.
select maintaience type as single step.
maintainence screen as system generated numbers
this dialog box appears when you click on create
button
save and activate table
http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ed2d446011d189700000e8322d00/content.htm
One step, two step in Table Maintenance Generator
Single step: Only overview screen is created i.e. the Table Maintenance Program will have only one screen where you can add, delete or edit records.
Two step: Two screens namely the overview screen and Single screen are created. The user can see the key fields in the first screen and can further go on to edit further details.
please check the link for getting information about table maintenance generator !
https://www.sdn.sap.com/irj/sdn/advancedsearch?query=use%20of%20table%20maintenance%20generator&cat=sdn_all
http://www.sapdevelopment.co.uk/tips/tips_tabmaint_tcode.htm
http://www.sap-img.com/abap/create-a-table-maintance-program-for-a-z-table.htm
Regards,
Priyanka. -
Is it possible to create java standalone programs with java ME 8
Hi,
Comparing java ME to java SE, I have the impression that midlets are similar to applets.
When working with java SE, I usually make standalone programs.
Now, I wonder if it is also possible to create also standalone programs for java ME, if the classes are only using java ME API's.
I already noticed that netbeans does not allow to build a project that does not contain a midlet, but maybe, it is possible to create a jar file
using the javac and jar commands. Or is there a specific reason why netbeans does not allow to build a project without midlets?
The reason for asking is, that I often make small tools in java that ae then called from a linux script. I imagine that this might be useful on the raspberry pi as well.
Thanks in advance
JefHi Jef -
Comparing java ME to java SE, I have the impression that midlets are similar to applets.
Sort of - similar life cycle methods - so conceptually, yes.
Now, I wonder if it is also possible to create also standalone programs for java ME, if the classes are only using java ME API's.
In a way, yes. If you build an project, you will notice a JAD file and JAR file in the dist directory of the project. JAD is the descriptor for a MIDlet - in mobile devices, the JAD
file is loaded first to determine if the MIDlet has enough privileges to load and run, before the corresponding JAR file is downloaded.
However, the JAD file can also be included in the Manifest of the JAR and the JAR copied to the embedded device manually and run there.
I already noticed that netbeans does not allow to build a project that does not contain a midlet, but maybe, it is possible to create a jar file
using the javac and jar commands. Or is there a specific reason why netbeans does not allow to build a project without midlets?
You can build JAR files and include them into Java ME Embedded projects, but just like Applets, to use the Application Management System (AMS) on the Raspberry Pi, you must have a MIDlet to run.
Perhaps you mean that you would like to launch the AMS and load a MIDlet from the command line on the Pi?
If so, take a look at this section of the Getting Started Guide for the Raspberry Pi.
Tom -
Adding maintenance transaction for a Z table
Hello All,
Can anyone tell how to add a maintenance transaction for a Z table.
Thanks in advance.
Best Regards,
Sasidhar Reddy Matli.Hi
Check this:
able maintennace generator is used to create screen to maintain values in a table. Once you create maint generator you can goto transaction SM30 and add data to table . In SAP it is more relevant to customizing data.
Create a table maintance program for a z table :
In transaction SE11, in the attribute tab of your z table check table maintenance check box. Go to SM30 transaction, enter the ztable name and click on maintain button. Here you can enter new entries into the ztable .
Or
You can create a PARAMETER TRANSACTION for the transaction for SM30 .
Follow these steps :
1. go to transaction SE93 , give your own transaction code say ztran_tab, for maintaining your ztable.
2. Click on create button and check the radio button Transaction with parameters (PARAMETER TRANSACTION) and click on the tick button.
3. In the next screen enter default values:
transaction : SM30
check the check box skip initial screen
4. Scroll down you will find a table control for default values
Name of the screen field | value
VIEWNAME | your ztable name
SHOW | X
Save your work.
Now as you have created a custom transaction for maintaining your ztable this transaction can be called from any program with CALL transaction 'XXX'.
Regards,
Vishwa. -
How to access a table of SAP standard SAP method from external program
Hi Friends,
I have to access a table and modified it defined in a standard SAP method (PROCESS_INPUT_FILTER) of class (CL_HANDLE_MM).
As we normaly do it in case of Standard program
for example: ('(SAPLMEPO)ett[]') here we are accessing internal table ett defined in SAPLMEPO.
so how we can do the same thing if some thing defined in standard SAP method.
Pl. help.Thanks for the info guys, it will come in handy.
I need to validate that a number is entered with zero or one decimal place, then make sure it is evenly
divisible by .5 in order to test for whole or half numbers only. If not, I use an alert to
display a message when the user leaves the field.
If there is a better way to achieve this, I am all ears!
Thank you for your time,
Gary -
What is access sequence tables and how to use them in program?
hi all, I know a little about SD and access sequence tables, but I get a requriment like this:
condition type is a paramater
The condition types allowed in this report are: Note: A list of pre-defined condition types with their corresponding access sequence tables will be defined.
How can I make it? How can I use it in program to get the price?Hi,
An access sequence is a search strategy with the aid of which the SAP
System searches for valid condition records of a certain condition type.
For example, you can stipulate for a price that the SAP System first
searches for a price for a specific plant, and then for a generally
applicable price.
For condition types for which you wish to maintain conditions with their
own validity period, you must assign an access sequence. With this, you
define which fields the SAP System checks in searching for a valid
condition record.
e.g. When you create condition record (e.g. Purchasing condition record) you enter condition type, system asks you the key combination to enter the entries. These key combinations are nothing but the access sequence. On the basis of combination of condition table it will search record. e.g. when u maintain condition record with acc seq Material/plant combination, it will transfer the same record in PO when u enter same material and plant in the PO.
Example:
An access sequence has been assigned to condition type PB00 so that
prices can be maintained in purchasing info records and contracts.
No access sequence has been assigned to condition type RC00 because it
does not have a validity period of its own. In the standard system, it is
always maintained simultaneously with the price and is valid for the
period of the price.
For more help
http://www.sap-img.com/materials/steps-for-mm-pricing-procedures.htm
Regards,
Raj. -
Maintenance view program for a table
Hi All,
How can i create a maintenance view program for a table. i did maintenance view in sm30 for that table. now it needs a transaction code for maintenance. can somebody help me with this.
Thanks,
KiranHi
Create a new transaction Z**** linked to SM30 for that table:
- trx SE93: while creating trx choose transaction with parameter and insert these data:
- TRANSACTION = SM30
- set the flag SKIP INITIAL SCREEN
At the end of screen, section Default Value, if you want to open dialog for updating:
NAME OF SCREEN FIELD VALUE
VIEWNAME <here insert the table name>
UPDATE X
...for displaying:
NAME OF SCREEN FIELD VALUE
VIEWNAME <here insert the table name>
SHOW X
Max
Maybe you are looking for
-
Client and Server in one process
Hi all, I am trying to create a process which can act as both Client and Server. How can I do this? Thanks!
-
Using Macbook Pro - Iphone 5s is not being recognized by iTunes! Help!!
I have a Macbook Pro and a Iphone 5s. iTunes is not recognizing my phone. How do i solve this problem? Help!
-
GROUP BY clause diff in Sybase and Oracle
Hi, I am migrating code from Sybase to Oracle and came across a strange issue which is widely known to others :) In Sybase , one can use columns or calculations in the SELECT expressions that don't appear in the GROUP BY clause of the query. Like SEL
-
Need Description of OOPS Concept in LABVIEW
Hi Every one. Good Morning to all. I want to learn the OOPS concepts in LabVIEW. Please can any one suggest me the links or provide me the necessary documents (like PDFs). Thanks in advance.. Regards Naresh G
-
Movies, Walkman & Album app bugs
Android 4.3 update is really amazing but it comes with flaws that needs to be perfected. Movies app: -Sometimes sound and video is not in sync. Have to close app and start again for it to be okay. Walkman app: -Volume is really soft when compared to