Declare deep structure with se11
Hi,
I would like to create a new deep structure with a table type component with se11 transaction, not a nested structure.
I know it is possible to do that with Abap but I need to do this with se11 because it has to be accessible from some reports and some function modules as export parameters.
Thanks.
Hello Juan
If you use a DB table name as TYPE for your structure field is is always a structure but not a table type.
The only difference between DB tables and structures is that you can save records in DB tables.
Instead of the DB table name you need the name of a table type which has the DB table as line type.
Example: Structure has two fields
KUNNR (of TYPE kunnr)
DATA (of TYPE trty_knb1 => table type for KNB1)
Now you can define a table type having the line structure shown above.
Regards
Uwe
Similar Messages
-
Declaring deep structures in OOP
Hello experts,
I would like to ask for your help in solving a problem, i'm currently stuck at this and can't proceed with the requirement.
I would like to declare a deep structure in a table and was able to come up with this in procedural programming:
tables: zsd_output_net.
data: begin of t_table_structure occurs 0.
include structure zsd_output_net.
data end of t_table_structure.
types: begin of t_output_all,
bukrs type anla-bukrs,
out_table like t_table_structure occurs 0,
end of t_output_all.
data: gt_output_all type standard table of t_output_all with header line,
wa_out_table like line of t_table_structure.
This worked and I was able to append entries to table out_table. However, I'm having trouble translating this to OOP since OOP does not support declaration with "OCCURS".
Here's what I came up in OOP:
data: begin of t_table_structure.
include structure zsd_output_net.
data end of t_table_structure.
types: begin of t_inner_table,
in_table like t_table_structure,
end of t_inner_table.
types: begin of t_output_all,
bukrs type anla-bukrs,
out_table type t_inner_table initial size 1,
end of t_output_all.
data: gt_output_all type standard table of t_output_all,
wa_output_all type t_output_all,
gt_inner_table type standard table of t_inner_table,
wa_inner_table type t_inner_table,
wa_out_table like t_table_structure.
This did not work because out_table just became a structure and not a table in a table. What should I do so that I would get the same effect as with structural programming?what I came up in OOP:
data: begin of t_table_structure.
include structure zsd_output_net.
data end of t_table_structure.
types: begin of t_inner_table,
in_table like t_table_structure,
end of t_inner_table.
data :gt_inner_table type standard table of t_inner_table,
wa_inner_table type t_inner_table.
types: begin of t_output_all,
bukrs type anla-bukrs,
out_table type gt_inner_table ,
end of t_output_all.
data: gt_output_all type standard table of t_output_all,
wa_output_all type t_output_all,
wa_out_table like t_table_structure. -
Se11 structure with se11 table type included
Hi ABAP Gurus,
in order to pass a complex datastructure by RFC I want to create a new structure via SE11 which includes in addition to some normal fields an field which represents a table of a certain type. Therefore I created a table type and tried to include that in the structure definition but without success. Any ideas of how I can create such a 'non-flat' structure in the ABAP dictionary ?
I know that such a thing can be declared as a type in ABAP, but I'm not sure if I can do it in the dictionary.
Any reply is very appreciated,
Best regards, PhilippHi,
You can insert structure into the table, and vice versa is not possible.
If you want to insert structure GO to Se11 -> provide table name -> chnage/create -> edit -> include -> insert -> provide the strcuture you want to include.
Thanks,
Sriram Ponna. -
Problem with deep structure in OO Context
Dear All
As we know deep structures with occurs 0 cannot be declared in Object Oriented context (will give a syntax error). Can some1 please suggest a workaround. I need to declare the following structure in a BADI implementation. But it is a deep structure & gives a syntax error.
BEGIN OF WI
OCCURS 0,
MINDX LIKE SY-INDEX, "Index Merkmal
WINDX LIKE SY-INDEX, "Index in Datentabelle
WSELE TYPE C, "Kz. selektiert
WOHNE TYPE C, "Kz. ohne Wertedefinition
WWERT TYPE C, "Kz. weitere Werte vorhanden
ATSON TYPE C, "Kz. Sonderwerte erlaubt
ESWRT TYPE C, "Kz. Eingeschränkter Wertebereich
SSTRG TYPE C, "Kz. Stringsuche
STATU TYPE C, "Status
ATWRT LIKE CAWN-ATWRT, "Wert sprachneutral
ATFLV LIKE CAWN-ATFLV, "intern von
ATFLB LIKE CAWN-ATFLB, "intern bis
ATAWE LIKE CAWN-ATAWE, "abw. Einheit
ATAW1 LIKE CAWN-ATAW1, "abw. Einheit bis
ATCOD LIKE CAWN-ATCOD, "Operator-Ident.
ATTLV LIKE CAWN-ATTLV, "Toleranz von
X TYPE C,
ATTLB LIKE CAWN-ATTLB, "Toleranz bis
ATPRZ LIKE CAWN-ATPRZ, "Angabe in %
ATINC LIKE CAWN-ATINC, "Schrittweite
ATAUT LIKE AUSP-ATAUT, "Author
WSDEF LIKE CAWN-ATSTD, "Kz. Std.-Wert
ATZHL LIKE AUSP-ATZHL, "Zähler AUSP
TXTNR LIKE CAWN-TXTNR, "Text-Nr.
WTZHL LIKE CAWN-ATZHL, "Zähler CAWN
AENNR LIKE CAWN-AENNR, "Änderungsnr.
DATUV LIKE CAWN-DATUV, "Datum von aus Änderungsnr.
ATZHH LIKE CAWN-ATZHH, "Hierarchie: ATZHL des Parent
ATWHI LIKE CAWN-ATWHI, "Hierarchie: ATZHL ist Parent
ATVPL LIKE CAWN-ATVPL, "Kz. Vorplanung
NATWRT LIKE CAWN-ATWRT, "Sprachneutraler Wert
CATWRT LIKE CAWN-ATWRT, "CHAR-Wert in DDB
CATFLV LIKE CAWN-ATFLV, "NONCHAR-Wert in DDB
KNOBJ LIKE CAWN-KNOBJ, "Beziehungswissen
KNPRE TYPE C, "KNART: Precondition
KNACT TYPE C, "KNART: Action
KNPRO TYPE C, "KNART: Procedure
VL TYPE VALUE_DESCRIPTION OCCURS 5,
est_atwrt like ausp-atwrt, "Eingabestring (für EH&S) 4.0c
END OF WI.
Help needed urgently!!
Regards
SudhirDeclare TYPES statement.
types: BEGIN OF WI,
MINDX LIKE SY-INDEX, "Index Merkmal
WINDX LIKE SY-INDEX, "Index in Datentabelle
WSELE TYPE C, "Kz. selektiert
WOHNE TYPE C, "Kz. ohne Wertedefinition
WWERT TYPE C, "Kz. weitere Werte vorhanden
ATSON TYPE C, "Kz. Sonderwerte erlaubt
ESWRT TYPE C, "Kz. Eingeschränkter Wertebereich
SSTRG TYPE C, "Kz. Stringsuche
STATU TYPE C, "Status
ATWRT LIKE CAWN-ATWRT, "Wert sprachneutral
ATFLV LIKE CAWN-ATFLV, "intern von
ATFLB LIKE CAWN-ATFLB, "intern bis
ATAWE LIKE CAWN-ATAWE, "abw. Einheit
ATAW1 LIKE CAWN-ATAW1, "abw. Einheit bis
ATCOD LIKE CAWN-ATCOD, "Operator-Ident.
ATTLV LIKE CAWN-ATTLV, "Toleranz von
X TYPE C,
ATTLB LIKE CAWN-ATTLB, "Toleranz bis
ATPRZ LIKE CAWN-ATPRZ, "Angabe in %
ATINC LIKE CAWN-ATINC, "Schrittweite
ATAUT LIKE AUSP-ATAUT, "Author
WSDEF LIKE CAWN-ATSTD, "Kz. Std.-Wert
ATZHL LIKE AUSP-ATZHL, "Zähler AUSP
TXTNR LIKE CAWN-TXTNR, "Text-Nr.
WTZHL LIKE CAWN-ATZHL, "Zähler CAWN
AENNR LIKE CAWN-AENNR, "Änderungsnr.
DATUV LIKE CAWN-DATUV, "Datum von aus Änderungsnr.
ATZHH LIKE CAWN-ATZHH, "Hierarchie: ATZHL des Parent
ATWHI LIKE CAWN-ATWHI, "Hierarchie: ATZHL ist Parent
ATVPL LIKE CAWN-ATVPL, "Kz. Vorplanung
NATWRT LIKE CAWN-ATWRT, "Sprachneutraler Wert
CATWRT LIKE CAWN-ATWRT, "CHAR-Wert in DDB
CATFLV LIKE CAWN-ATFLV, "NONCHAR-Wert in DDB
KNOBJ LIKE CAWN-KNOBJ, "Beziehungswissen
KNPRE TYPE C, "KNART: Precondition
KNACT TYPE C, "KNART: Action
KNPRO TYPE C, "KNART: Procedure
VL TYPE table of VALUE_DESCRIPTION,est_atwrt like ausp-atwrt, "Eingabestring (für EH&S) 4.0c
END OF WI.
types: t_wi type standard table of wi.
data: wa type wi,
t_itab type t_wi. -
Regarding creation of dynamic deep structure
Hi all,
I have to construct the dynamic deep structure.
for example,
With the help of information about address and t_table, i have to create the deep structure on runtime.
In one case i need to create the deep strcuture with address alone and in another case i need to create the deep structure with address and t_table.
DATA : begin of address ,
address type string ,
end of address.
data : begin of t_tab ,
name(10) type c,
age type i,
address like address,
end of t_tab,
t_table like Table of t_tab.
data: BEGIN OF wa_vig,
details1 like address,
details2 like t_table,
END OF wa_vig.
data: BEGIN OF wa_vig,
details1 like address,
END OF wa_vig.
Please guide me, how should i acheive this with the help of dynamic declarion .
regards
VigneshHi All,
I will be happy if i can acheive this using RTTS concept.
Regards
Vignesh -
Structure with a string field as parameter in FM
Hi,
I have a requirement wherein based on some id which is the import paramter (table) i have to fetch some text of type string n pass as an export paramater. it has to be a table since for each id there wil a text associated with it.
For this i have declared a structure with two fields, one client and the other, the text type string.
While trying to activate my fm, it says that italicsthe structure should be a flat type. You cannot use internal tables. string, references etcitalics
Please provide a solution.
Regards,
herwin.Hi Vikranth,
ya using char or lchar would be one option and the other would be the use of the table type in the the import/export parameters. That worked without giving me that warning message and was able to execute my code properly with the desired output.
Regards,
Herwin.
Edited by: Herwin Wilmet Dsouza on May 11, 2010 12:18 PM -
How to use STRANS to translate XML to ABAP with deep structure
every experts, I want to use Tcode: STRANS to translate XML to ABAP, But it does not work well,
here is XML code,I want to translate this XML into an an Inter table gt_orders with deep structure of oeb, and colum oeb is also and intertable,how can I do this.
<?xml version="1.0" encoding="gb2312" ?><axmt410><ObjectID>setSalesOrder</ObjectID><azp01>000000</azp01><oea00>1</oea00><ta_oeaecn>SO-140227-3041</ta_oeaecn><oea03>25325017</oea03><oea02>2014-02-27 17:44:44.0</oea02><ta_oea002>2763.0</ta_oea002><ta_oea001>0.0</ta_oea001><oea14></oea14><oea15>25325017</oea15><oea23>RMB</oea23><oeaconf>S3</oeaconf><oea10></oea10><oeaud01>null</oeaud01><ta_oea007></ta_oea007><oea25>101</oea25><ta_oea008>0</ta_oea008><ta_oea009>null</ta_oea009><oeauser>Hanjingya</oeauser><ta_oeanday>2014-02-27 17:44:44.991</ta_oeanday><ta_oeamday>2014-02-28 08:30:14.866</ta_oeamday><ta_oeacday>2014-02-28 08:30:14.866</ta_oeacday><oeaud02>0</oeaud02><ta_oea030>null</ta_oea030><oeb><oeb03>1</oeb03><oeb04>7400208249</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address1</ta_oeb003><ta_oeb004>zhangdagui、zhanglan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb><oeb><oeb03>2</oeb03><oeb04>7400208250</oeb04><oeb05>PCS</oeb05><oeb17>921.0</oeb17><oeb13>921.0</oeb13><oeb15></oeb15><oeb12>5</oeb12><oeb09>990001</oeb09><ta_oeb001></ta_oeb001><ta_oeb002>Yunnan</ta_oeb002><ta_oeb003>address2</ta_oeb003><ta_oeb004>zhangdagui、chenlan</ta_oeb004><ta_oeb005>15974749998、15987782008</ta_oeb005><ta_oeb006>address and street</ta_oeb006><oebud01></oebud01></oeb></axmt410>
I write these codes in SAP XSLT editor
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
<xsl:strip-space elements="*"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<ORDERS>
<xsl:apply-templates select="//axmt410"/>
</ORDERS>
</asx:values>
</asx:abap>
</xsl:template>
<xsl:template match="axmt410">
<OBJECTID>
<xsl:value-of select="ObjectID"/>
</OBJECTID>
<AZP01>
<xsl:value-of select="azp01"/>
</AZP01>
<OEA00>
<xsl:value-of select="oea00"/>
</OEA00>
<TA_OEAECN>
<xsl:value-of select="ta_oeaecn"/>
</TA_OEAECN>
<OEA03>
<xsl:value-of select="oea03"/>
</OEA03>
<OEA05>
<xsl:value-of select="oea05"/>
</OEA05>
<OEA02>
<xsl:value-of select="oea02"/>
</OEA02>
<TA_OEA002>
<xsl:value-of select="ta_oea002"/>
</TA_OEA002>
<TA_OEA001>
<xsl:value-of select="ta_oea001"/>
</TA_OEA001>
<OEA14>
<xsl:value-of select="ora14"/>
</OEA14>
<OEA15>
<xsl:value-of select="ora15"/>
</OEA15>
<OEA23>
<xsl:value-of select="ora23"/>
</OEA23>
<OEACONF>
<xsl:value-of select="oeaconf"/>
</OEACONF>
<OEA10>
<xsl:value-of select="ora10"/>
</OEA10>
<OEAUD01>
<xsl:value-of select="oeaud01"/>
</OEAUD01>
<TA_OEA007>
<xsl:value-of select="ta_oea007"/>
</TA_OEA007>
<OEA25>
<xsl:value-of select="ora25"/>
</OEA25>
<TA_OEA008>
<xsl:value-of select="ta_oea008"/>
</TA_OEA008>
<TA_OEA009>
<xsl:value-of select="ta_oea009"/>
</TA_OEA009>
<TA_OEA013>
<xsl:value-of select="ta_oea013"/>
</TA_OEA013>
<TA_OEA014>
<xsl:value-of select="ta_oea014"/>
</TA_OEA014>
<TA_OEA015>
<xsl:value-of select="ta_oea015"/>
</TA_OEA015>
<TA_OEA016>
<xsl:value-of select="ta_oea016"/>
</TA_OEA016>
<TA_OEA017>
<xsl:value-of select="ta_oea017"/>
</TA_OEA017>
<TA_OEA018>
<xsl:value-of select="ta_oea018"/>
</TA_OEA018>
<TA_OEA019>
<xsl:value-of select="ta_oea019"/>
</TA_OEA019>
<TA_OEA020>
<xsl:value-of select="ta_oea020"/>
</TA_OEA020>
<TA_OEA021>
<xsl:value-of select="ta_oea021"/>
</TA_OEA021>
<TA_OEA022>
<xsl:value-of select="ta_oea022"/>
</TA_OEA022>
<TA_OEA028>
<xsl:value-of select="ta_oea028"/>
</TA_OEA028>
<OEAUSER>
<xsl:value-of select="oeauser"/>
</OEAUSER>
<TA_OEANDAY>
<xsl:value-of select="ta_oeanday"/>
</TA_OEANDAY>
<TA_OEAMDAY>
<xsl:value-of select="ta_oeamday"/>
</TA_OEAMDAY>
<TA_OEACDAY>
<xsl:value-of select="ta_oeacday"/>
</TA_OEACDAY>
<OEAUD02>
<xsl:value-of select="oeaud02"/>
</OEAUD02>
<TA_OEA030>
<xsl:value-of select="ta_oea030"/>
</TA_OEA030>
<OEB>
<xsl:for-each select="oeb">
<OEB03>
<xsl:value-of select="oeb03"/>
</OEB03>
<OEB04>
<xsl:value-of select="oeb04"/>
</OEB04>
<OEB05>
<xsl:value-of select="oeb05"/>
</OEB05>
<OEB17>
<xsl:value-of select="oeb17"/>
</OEB17>
<OEB13>
<xsl:value-of select="oeb13"/>
</OEB13>
<OEB15>
<xsl:value-of select="oeb15"/>
</OEB15>
<OEB12>
<xsl:value-of select="oeb12"/>
</OEB12>
<OEB09>
<xsl:value-of select="oeb09"/>
</OEB09>
<TA_OEB001>
<xsl:value-of select="ta_oeb001"/>
</TA_OEB001>
<TA_OEB002>
<xsl:value-of select="ta_oeb002"/>
</TA_OEB002>
<TA_OEB003>
<xsl:value-of select="ta_oeb003"/>
</TA_OEB003>
<TA_OEB004>
<xsl:value-of select="ta_oeb004"/>
</TA_OEB004>
<TA_OEB005>
<xsl:value-of select="ta_oeb005"/>
</TA_OEB005>
<TA_OEB006>
<xsl:value-of select="ta_oeb006"/>
</TA_OEB006>
<OEBUD01>
<xsl:value-of select="oebud01"/>
</OEBUD01>
</xsl:for-each>
</OEB>
</xsl:template>
</xsl:transform>
and I use below ABAP program for a test, but the items from XML can not translate into Interner table gt_orders-oeb[]
TYPE-POOLS abap.
CONSTANTS gs_file TYPE string VALUE 'C:\temp\order02.xml'.
* This is the structure for the data from the XML file
TYPES:
BEGIN OF typ_s_oeb,
oeb03 TYPE string, "
oeb04 TYPE string, "
oeb05 TYPE string, "
oeb17 TYPE string, "
oeb13 TYPE string,
oeb15 TYPE string,
oeb12 TYPE string, "
oeb09 TYPE string, "
ta_oeb001 TYPE string, "
ta_oeb002 TYPE string, "
ta_oeb003 TYPE string, "
ta_oeb004 TYPE string, "
ta_oeb005 TYPE string, "
ta_oeb006 TYPE string, "
ta_oeb013 TYPE string, "
ta_oeb014 TYPE string, "
ta_oeb015 TYPE string, "
ta_oeb016 TYPE string, "
ta_oeb017 TYPE string, "
ta_oeb018 TYPE string, "
ta_oeb019 TYPE string, "
ta_oeb020 TYPE string, "
ta_oeb021 TYPE string, "
ta_oeb022 TYPE string, "
oebud01 TYPE string, "
END OF typ_s_oeb.
TYPES: typ_t_oeb TYPE TABLE OF typ_s_oeb WITH KEY oeb03.
TYPES:
BEGIN OF typ_s_order,
objectid TYPE string, "
azp01 TYPE string, "
oea00 TYPE string, "
ta_oeaecn TYPE string, "
oea03 TYPE string, "
oea02 TYPE string, "
ta_oea002 TYPE string, "
ta_oea001 TYPE string, "
oea14 TYPE string, "
oea15 TYPE string,
oea23 TYPE string, "
oeaconf TYPE string, "
oea10 TYPE string, "
oeaud01 TYPE string, "
ta_oea007 TYPE string, "
oea25 TYPE string, "
ta_oea008 TYPE string, "
ta_oea009 TYPE string, "
oeauser TYPE string, "
ta_oeanday TYPE string, "
ta_oeamday TYPE string, "
ta_oeacday TYPE string, "
oeaud02 TYPE string, "
ta_oea030 TYPE string, "
ta_oea013 TYPE string,
ta_oea014 TYPE string,
ta_oea015 TYPE string,
ta_oea016 TYPE string,
ta_oea017 TYPE string,
ta_oea018 TYPE string,
ta_oea019 TYPE string,
ta_oea020 TYPE string,
ta_oea021 TYPE string,
ta_oea022 TYPE string,
ta_oea025 TYPE string,
oeb TYPE typ_t_oeb,
END OF typ_s_order.
* Table for the XML content
DATA: gt_itab TYPE STANDARD TABLE OF char2048,
gs_itab LIKE LINE OF gt_itab.
* Table and work ares for the data from the XML file
DATA: gt_orders TYPE STANDARD TABLE OF typ_s_order,
gs_orders TYPE typ_s_order.
* Result table that contains references
* of the internal tables to be filled
DATA: gt_result_xml TYPE abap_trans_resbind_tab,
gs_result_xml TYPE abap_trans_resbind.
* For error handling
DATA: gs_rif_ex TYPE REF TO cx_root,
gs_var_text TYPE string.
* Get the XML file from your client
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = gs_file
CHANGING
data_tab = gt_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
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Fill the result table with a reference to the data table.
* Within the XSLT stylesheet, the data table can be accessed with
* "IPERSON".
GET REFERENCE OF gt_orders INTO gs_result_xml-value.
gs_result_xml-name = 'ORDERS'.
APPEND gs_result_xml TO gt_result_xml.
* Perform the XSLT styleshee
TRY.
CALL TRANSFORMATION zfx_so_xml_to_abap
SOURCE XML gt_itab
RESULT (gt_result_xml).
CATCH cx_root INTO gs_rif_ex.
gs_var_text = gs_rif_ex->get_text( ).
MESSAGE gs_var_text TYPE 'S'.
ENDTRY.
LOOP AT gt_orders INTO gs_orders.
ENDLOOP.The simplest way seems to me is to use a XSL file for that. The <xsl:output> attributes doctype-system and doctype-public generate the DTD declaration <!DOCTYPE YOUR_ROOT SYSTEM "yourDTDfile.dtd"> and <!DOCTYPE YOUR_ROOT PUBLIC "yourDTDfile.dtd">, respectively.
When calling transformerInstance.transform() the XSLT processor performs the identity transformation - it just copies elements, attributes, content, processing instructions and comments to the result stream.
If you're using an xsl file for your transformation already, simply add <xsl:output doctype-system="yourDTDfile.dtd"/> to your existing XSL file.
If you're only using the identity transformation you'd need to change the line of code where you obtain the transformer instance from the TransformerFactory to:
t_factory.newTransformer(new StreamSource("test.xsl"));
and use this as test.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output doctype-system="yourDTDfile.dtd"/>
<!-- this is the identity transformation -->
<xsl:template match="*|@*|comment()|processing-instruction()|text()">
<xsl:copy>
<xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>Good luck. -
Problem with deep structure in Adobe Forms
Hi ,
I am converting smartform into adobe forms. While converting the program code in the code initialization of the smart forms also get transformed to adobe forms the problem is my internal table is of type deep structure while passing it through the tables parameter i am getting error in adobe forms .But while passing the internal table through import parameter its not giving error.The same code works fine with smartforms. I dont know why its not taking the structure of internal table in adobe forms properly .It happens only for deep strucure formal normal tables it works fine in table parameters .If any one has come across this scenario please share your ideas.
Best Regards,
SreeramIf I were you, I would never do this through any program. The only secure, reliable way is to rewrite everything by your own hands. Even if we could argue, your way works as well (and could be faster at the beginning), at the firt moment you will be asked to perform any tiny change in this "imported" thing, you will cry your eyes out (and understand why it is the only useful way to rewrite everything manually).
regards Otto -
How to read xml with deep structure into intarnal table.
Hi,
Could you pls any body provide xslt code for deep structure convert into internal table.
sample xml file:
- <ns0:CREATIONOFCONTRACT xmlns:ns0="http://BPCreationXSD.CreationOfContract">
- <CREATIONOFCONTRACTDATA>
<RequestType>L0011</RequestType>
<ApplicationId>AN-12</ApplicationId>
<LoanId>QO-22</LoanId>
- <Borrowerguarantorinfo>
<Borrowerbpno>101020</Borrowerbpno>
<Co-borrower1BPNo>101021</Co-borrower1BPNo>
<Co-borrower2BPNo>101022</Co-borrower2BPNo>
<Guarantor1BPNo>101023</Guarantor1BPNo>
<Guarantor2BPNo>101024</Guarantor2BPNo>
<Branch>New Delhi</Branch>
</Borrowerguarantorinfo>
- <Loaninfo>
<Applicationtype>Fresh</Applicationtype>
<Purposeofloan>Home Purchase</Purposeofloan>
<Securedunsecuredflag>Secured</Securedunsecuredflag>
<Loantype>HL with MRTA</Loantype>
<Loancurrency>INR</Loancurrency>
<Loanproduct>MaxiHome Loan Package</Loanproduct>
<Loanscheme>MaxiHome ZEC</Loanscheme>
<Loanamount>1500000.00</Loanamount>
<Loantenure>60</Loantenure>
<Tiered>No</Tiered>
</Loaninfo>
<Periodfrom>01/07/2009</Periodfrom>
<Periodto>16/09/2019</Periodto>
<RateType>Fixed</RateType>
<Ratecode>10.25</Ratecode>
</CREATIONOFCONTRACTDATA>
</ns0:CREATIONOFCONTRACT>Hi Ramesh,
Thanks for the info,but I found lot of tables unfortunately I am not getting the value for radio buttons. Also I found a FM FIELD_SELECTION_CUSTOMIZE , IMPORT_DYNPRO etc which will call that screen based on profile but it will not store data any where. I found several tables like TCATS, TFAWC, TFAWF, TFAWT etc.But I am not getting the value for raduio buttons.
Thanks & Regards,
Nagaraj Kalbavi -
Selecting into an internal table with deep structure
Hi,
I am working in ECC 6.0 now and it is giving me a syntax error for the following code.
types: tt_bdc type standard table of bdcmsgcoll
with default key.
data: begin of t_test occurs 0,
vbeln like vbak-vbeln,
tab type tt_bdc,
end of t_test.
select vbeln from vbak into table t_test
where aedat > '20081101'.
The error is:
+The work area (or internal table) "T_TEST" is not flat, or contains
reference or internal tables as components . components. components.
components. components.+
I've done this in countless other programs in the past. How can I use a deep structure this way? What am I missing?
Thanks very much!Will this solve ur requirement -
types: tt_bdc type standard table of bdcmsgcoll
with default key.
data: begin of t_test occurs 0,
vbeln like vbak-vbeln,
tab type tt_bdc,
end of t_test.
select vbeln from vbak into
CORRESPONDING FIELDS OF TABLE t_test
where aedat > '20081101'. -
Creating dynamic internal table with deep structure
Hi all,
I need to create an internal table with deep structure dynamically. I've already created tables with method 'create_dynamic_table' but I'm struggling with the deep structure.
I would need an internal table with the following structure:
DATA: BEGIN OF lt_t1,
s1 TYPE REF TO data,
s2 TYPE REF TO data,
END OF lt_t1.
S1 and S2 have to be tables.
It might be possible with RTTS but all the examples in the forums (that I've found so far) are related to at least one DDIC-structure. And that's my problem because both tables are created during runtime.
Thank you in advance
NicolaHi Frédéric,
I hope my english is good enough to explain it correctly:
We use a function builder for SEM-BPS which copies data from one Cube to another. This Cube is transactional, so you can't easily read a structure out of DDIC.
The export parameter of this function builder is a table with type 'any table'.
Until today we used a fixed definition e.g.:
TYPES:
BEGIN OF xtyp_chas,
/sie/sr_ocomp TYPE /b52/oisr_ocomp,
/sie/ts_03psp TYPE /b52/oits_03psp,
0activity TYPE /bi0/oiactivity,
0acty_elemt TYPE /bi0/oiacty_elemt,
0costelmnt TYPE /bi0/oicostelmnt,
0co_area TYPE /bi0/oico_area,
0creditor TYPE /bi0/oicreditor,
0currency TYPE /bi0/oicurrency,
0curtype TYPE /bi0/oicurtype,
0db_cr_ind TYPE /bi0/oidb_cr_ind,
0fiscper TYPE /bi0/oifiscper,
0fiscper3 TYPE /bi0/oifiscper3,
0fiscyear TYPE /bi0/oifiscyear,
0metype TYPE /bi0/oimetype,
0network TYPE /bi0/oinetwork,
0part_actty TYPE /bi0/oipart_actty,
0part_cctr TYPE /bi0/oipart_cctr,
0piobjsv TYPE /bi0/oipiobjsv,
0project TYPE /bi0/oiproject,
0unit TYPE /bi0/oiunit,
0vtdetail TYPE /bi0/oivtdetail,
0vtstat TYPE /bi0/oivtstat,
0vtype TYPE /bi0/oivtype,
0bus_area TYPE /bi0/oibus_area,
0cashdetail TYPE /bi0/oicashdetail,
0cashtype TYPE /bi0/oicashtype,
0comp_code TYPE /bi0/oicomp_code,
0coorder TYPE /bi0/oicoorder,
0cs_dimen TYPE /bi0/oics_dimen,
0cs_unit TYPE /bi0/oics_unit,
0int_bus TYPE /bi0/oiint_bus,
0part_abcpr TYPE /bi0/oipart_abcpr,
0part_coord TYPE /bi0/oipart_coord,
0part_wbsel TYPE /bi0/oipart_wbsel,
0piovalue TYPE /bi0/oipiovalue,
0profit_ctr TYPE /bi0/oiprofit_ctr,
0ps_obj TYPE /bi0/oips_obj,
0statussys0 TYPE /bi0/oistatussys0,
zfbwheroj TYPE /bic/oizfbwheroj,
END OF xtyp_chas,
BEGIN OF xtyp_kyfs,
0amount TYPE /bi0/oiamount,
0quantity TYPE /bi0/oiquantity,
zf03oaws TYPE /bic/oizf03oaws,
zf03oqty TYPE /bic/oizf03oqty,
zf03ozsta TYPE /bic/oizf03ozsta,
END OF xtyp_kyfs,
BEGIN OF xtyp_zf03g003,
s_chas TYPE xtyp_chas,
s_kyfs TYPE xtyp_kyfs,
END OF xtyp_zf03g003,
xtyp_zf03g003_t TYPE HASHED TABLE OF xtyp_zf03g003
WITH UNIQUE KEY s_chas.
DATA: lt_ibm_data TYPE xtyp_zf03g003_t,
ls_ibm_data TYPE xtyp_zf03g003.
So one table (s_chas) contains the characteristics of the Cube and the other (s_kyfs) contains the keyfigures. That's exactly the format we need for the export parameter. At the end of the program, we use the following coding to fill the export table (eto_chas):
loop at lt_ibm_data into ls_ibm_data.
collect ls_ibm_data-s_chas into eto_chas.
endloop.
So in this moment I give this table the structure that is needed to move the data into the cube. I can't change the requirement because it is a standard interface.
I would like to change that coding to be dynamically. Because if somebody changes a charasteristic or a keyfigure in the cube, we would have to change the function builder too. I don't think that the SEM-BPS department will let us know every time they've changed something anyway.
So I hope that my explanation wasn't too confusing
Nicola -
ALV dynamic with deep structure
Hi All,
I need to program an ALV Report with a deep structure based on a outbound proxy structure, so I should pass to ALV function or ALV Method a dynamic table and a dynamic structure.
I tried to do it but I got a dump using this function module REUSE_ALV_GRID_DISPLAY with these parameters: STRUCTURE_NAME and T_OUTTAB.
Please, some suggestions about this.
Thanks in advance.
Alexis.Hi Vasanth
this is my example:
DATA: tl_proxy TYPE TABLE OF zpidt_operacion.
DATA: sl_proxy TYPE zpidt_operacion.
sl_proxy-dt_operacion-dt_cab_operacion-vkorg = '0001'.
APPEND sl_proxy TO tl_proxy.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'ZPIDT_OPERACION'
TABLES
t_outtab = tl_proxy
EXCEPTIONS
program_error = 1
OTHERS = 2.
Please, could you tell me how I have to do it.
Thanks,
Alexis. -
Read Table with Key in a Deep Structure
Hello,
I'd like to read a table while comparing a value in a deep structure. So in the following code the key ID is a deep structure within cs_purchase_order_message-purchase_order-item-value.
For some reason code check returns no errors with the following code, but I get a short dump with a syntax error on id-value when I execute the code.
read table cs_purchase_order_message-purchase_order-item assigning <fs_xml_item> with key id-value = <fs_item>-number_int.
How do I use "with key" when the value is in a deep structure?
Thanks,
MattRefer to example link below:
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/read-deep-structure-736023.
Regards,
Venkat. -
BLFA1 with deep structures in release 6/RFBIKR00
We are trying to upload VENDOR data in release 6 using RFBIKR00 program but when analizing the BLFA1 structure we found that is changed
there is a deep structure WRF_LFA1_BI_STY (for example)
that we do not know how to represent in the TXT file
We are not using this structure, but we asume that we have to send it as part of BLFA1 record.
Can somebody send me an example of how to write data for this BLFA1 record with this structure.
In advance Thanks.Hi Kiril,
I see what approach you are thinking about and your explanation is not idiotic at all
What I understand is that you have 6 Tables with loads of foreign keys and you want to avoid heaps of "loop at" or "select" coding-nestings. What I don't understand is, why would you want to reproduce the logic of your tables, which you already have, upon your context? I'm not seeing through what your application works like for an end user yet, maybe that's why I'm confused.
In my opinion you won't have many options to avoid some coding which contains a bit of complex Loop-At or Join-Clauses. But if you build a class and outsource the code in some public static methods, this won't be as much work as you think, assuming you make the methods a bit dynamic and reusable.
Cheers, Lukas -
How to work with deep structure
Hi !
I wanted to ask how to loop, modify, append tables located in deep structures. Deep structures i mean, structures consist of columns which are tables ( usualy exists in user-exit). Please give examples and reference help to this subject.
Thanks
MosheHi
TYPES: T_TYBSEG TYPE STANDARD TABLE OF BSEG.
DATA: BEGIN OF T_DOCUMENTS,
HEADER LIKE BKPF,
ITEMS TYPE T_TYBSEG,
END OF T_DOCUMENTS.
DATA: T_BSEG TYPE T_TYBSEG,
T_BKPF TYPE STANDARD TABLE OF BKPF WITH HEADER LINE.
Append data:
SELECT * FROM BKPF INTO TABLE T_BKPF WHERE ....
LOOP AT T_BKPF.
MOVE-CORRESPONDING T_BKPF TO T_DOCUMENTS-HEADER.
SELECT * FROM BSEG INTO TABLE T_BSEG where ....
Here it uses the table t_bseg to append the items to T_DCOUMENTS-ITEMS: it's very import to clear this table before appending records.
If you don't clear the internal table you'll append several times the same records.
REFRESH T_DOCUMENTS-ITEMS.
APPEND LINES OF T_BSEG TO T_DOCUMENTS-ITEMS.
APPEND T_DOCUMENTS.
ENDLOOP.
Read DATA:
LOOP AT T_DOCUMENTS.
LOOP AT T_DOCUMENTS-ITEMS INTO BSEG.
ENDLOOP.
ENDLOOP.
OR
READ TABLE T_DOCUMENTS (WITH KEY ...) (INDEX <INDEX>).
IF SY-SUBRC = 0.
LOOP AT T_DOCUMENTS-ITEMS INTO BSEG.
ENDLOOP.
ENDIF.
Modify
LOOP AT T_DOCUMENTS.
LOOP AT T_DOCUMENTS-ITEMS INTO BSEG.
IF BSEG-GJAHR = '2005'.
BSEG-GJAHR = '2006'.
ENDIF.
MODIFY T_DOCUMETS-ITEMS FROM BSEG.
ENDLOOP.
ENDLOOP.
So if you use this type of structure the table haven't an headerline, so you always use a workarea to read an update the data.
Max
Message was edited by: max bianchi
Maybe you are looking for
-
*** PLEASE NOTE*** - This is a query about an INTERNAL HDD not an external one. Thanks. My Mac is a late 2009 model and the current hard drive recently failed. So I bought a new one, exactly the same, albeit 750gb instead of 500gb. The HDD is a Seaga
-
I have a SPA2002 adapter which I use with an asterisk server. On the asterisk I have configured call forwarding that can be enabled by dialing *21*number#. The problem is that the linksys adapter won't let me dial *21, it immediately gives a busy ton
-
Report 3.0 Previewer showing fields filled with ***
Hi, I know that normally this means reports have no enough place for formatting the field but...when you see the first page all is OK and the next pages comes with *** in several fields. Some boilerplate text are shifted or not in their place. Can yo
-
Missingf SQL Statements in v$sqlarea
Hi, i´m tracing some sql statements and from time to time they disapear very quickly from the shared pool. i´m looking into v$sqlarea and the funny thing is, i thought "all" historical statments will be copied to dba_hist_sqltext. But thery are missi
-
Insufficient Shared Objects Memory Available
Hi Friends , You must be knowing sample application <b>wdr_test_chat</b> .I have used , executed application many time ....now when I run it and click in Log on ...log on pop up come and I am able to enter name ...but on click ok following dump comin