Simple transformation with reference to ddic structures
Hi, experts,
we decide to use xml as the format when exchanging massive data with other applications. and we want to use simple transformation because according to the document it's more fast.
actually our file structure is determined by certain ddic structures, one xml file main contain several ddic structures , and they are all flat one, not deep structure.
the xml file may look like this:
<data>
<ddic1>[components of ddic structure 1 ]</ddic1>
<ddic2>[components of ddic structure 2 ]</ddic2>
</data>
i am new to ST,i am wondering that is it possible to make the ST more easy with the help of ddic structure? do i still need to declare the components one by one in the ST program?
BR.
jun
It only runs ok with 2 internal tables because of the way you set up the XML string. It will run ok with 3 internal tables too. If you strip out the '<C>' nodes or move the '<C>' nodes around, you'll see what I mean (move the C nodes to the last B node). Each time you start a loop in a simple transformation, the internal table is initialized. So, you need to form your sample XML string differently, declare your internal tables differently (nested), or use XSLT for a little more power.
Similar Messages
-
Using Simple Transformations with Objects tt:copy .. results in Exception
Question:
How can I serialize an ABAP-Object-Instanz with my own simple transformation?
In the sap-documentation I found the following solution for the serialisation of any data-objects.
"z_steffens_simple_transf":
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:template>
<root>
<tt:copy ref="ROOT"/>
</root>
</tt:template>
</tt:transform>
Following the example I wrote this report:
report zspahr_test_simple_transf.
class serializable definition.
public section.
interfaces if_serializable_object.
data attr type string value 'Attribute'.
endclass.
method main_serializable.
data: oref type ref to serializable,
xmlstr type xstring.
create object oref.
call transformation id
source root = oref
result xml xmlstr.
call function 'DISPLAY_XML_STRING'
exporting
xml_string = xmlstr.
call transformation z_steffens_simple_object
source root = oref
result xml xmlstr.
call function 'DISPLAY_XML_STRING'
exporting
xml_string = xmlstr.
endmethod. "main_
start-of-selection.
demo=>main_serializable( ).
Executing this report leads to an exception "CX_SY_REF_NOT_SUPPORTED".
The "standard" transformation "ID" ist working an translates my object-instance into an asXML representation:
<?xml version="1.0" encoding="utf-8" ?>
- <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
- <asx:values>
<ROOT href="#o3" />
</asx:values>
- <asx:heap xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:abap="http://www.sap.com/abapxml/types/built-in" xmlns:cls="http://www.sap.com/abapxml/classes/global" xmlns:dic="http://www.sap.com/abapxml/types/dictionary">
- <prg:SERIALIZABLE xmlns:prg="http://www.sap.com/abapxml/classes/program/ZSPAHR_TEST_SIMPLE_TRANSF" id="o3">
- <local.SERIALIZABLE>
<ATTR>Attribute</ATTR>
</local.SERIALIZABLE>
</prg:SERIALIZABLE>
</asx:heap>
</asx:abap>
How can I do this with my own Simple Transformation "ZSPAHR_TEST_SIMPLE_TRANSF" ?
I want to serialize my object using my own xml-structure, not the asXML-structure !
Regards
SteffenHi,
try like this,i think it may help you.
ABAP:
CALL TRANSFORMATION ztrans_test
SOURCE
root = partab
RESULT XML lv_xstring.
Trnsformation:
<tt:root name="ROOT" type="?"/>
<tt:template>
<VALUES>
<VALUE_SOURCE>
<tt:value ref=".ROOT"/>
</VALUE_SOURCE>
<VALUE_PARAM>
<tt:value ref="NAME"/>
<tt:value ref="VALUE"/>
</VALUE_PARAM>
</VALUES>
Thanks,
Rajesh. -
Simple Transformation with very long XML element names
I am trying to write a program to deserialize XML documents using the Simple Transformation technique. There are many optional elements in the XML document, so I need to have conditional statements statements to avoid trying to process elements that are not in the document. The XML document, however, has several Element Names that are greater than 30 characters in length. The Simple Transformation technique seems to require ABAP data dictionary structures that mirror the schema of the XML document. But one cannot create structure component names that are greater than 30 characters in length. We don't have any control over the XML schema as the XML documents come from the US government. The ST fragment below shows the statement that I want to write, but since the ABAP Structure PlasticCardInformationGroup cannot have a component AuthorizationResponseInformation, the ST syntax checker yields an "Illegal Reference ADDITIONALPLASTICCARDINFORMATION" error message.
Does anyone know a way to avoid this error?
<tt:d-cond check="exist(TRS_TradingPartner_Agreement.TRS_FinancialTransaction.PlasticCardInformationGroup.AdditionalPlasticCardInformation)">
<ns2:AdditionalPlasticCardInformation>
<tt:attribute name="CardNetworkType" value-ref="TRS_TRADINGPARTNER_AGREEMENT.TRS_FINANCIALTRANSACTION.PLASTICCARDINFORMATIONGROUP.ADDITIONALPLASTICCARDINFORMATI.CARDNETWORKTYPE"/>
<tt:attribute name="DraftLocatorNumber" value-ref="TRS_TRADINGPARTNER_AGREEMENT.TRS_FINANCIALTRANSACTION.PLASTICCARDINFORMATIONGROUP.ADDITIONALPLASTICCARDINFORMATI.DRAFTLOCATORNUMBER"/>
</ns2:AdditionalPlasticCardInformation>could anyone help me?
-
XML Simple Transformation with Name attribute
Current logic for reference:
ERS tag is presented in XML file as: <ERSFlag>X</ERSFlag>
Transformation logic to populate ERS flag value into PO_item structure is as:
<tt:cond><ERSFlag>
<tt:value ref="$po_item.ers_flag"/>
</ERSFlag></tt:cond>
New Changes:
XML template with New tag: TaxField1. New Tag included as:
- <TaxField1 name="GST" value="">
- <MultiCurrencyMoney>
<Transaction currency="CAD">400.0000000000000</Transaction>
<Base currency="USD">380.68</Base>
<Local currency="CAD">400.0000000000000</Local>
</MultiCurrencyMoney>
</TaxField1>
I have added new field Taxfield1 with Char1 in structure po_item. I would need to Populate 'Y' to new field Taxfield1 in po_item structure based on the above XML tag.
Could anyone please let me know the Tranformation code to populate 'Y' to new field Taxcode1 in po_item structure based on the above XML tag.
Thanks in advance.Share solution with us. Thank you!!!
-
Dynamic DDIC structure - work at runtime with changes
Hi Experts,
I have a problem in a method of Web Dynpro Abap. Ich have a database structure /SME/DED_DYN and change its fields at runtime. I do that with the function DDIF_TABL_PUT and the activation with DDIF_TABL_ACTIVATE.
I have:
COMMIT WORK and wait.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
NAME = '/SME/DED_DYN'
TABLES
DD03P_TAB = DD03P_TAB
DD05M_TAB = DD05M_TAB
DD08V_TAB = DD08V_TAB
DD35V_TAB = DD35V_TAB
DD36M_TAB = DD36M_TAB
EXCEPTIONS
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
others = 6.
COMMIT WORK and wait.
if sy-subrc = 0.
call function 'DDIF_TABL_ACTIVATE'
exporting
name = '/SME/DED_DYN'
IMPORTING
rc = rc
exceptions
not_found = 1
put_failure = 2
others = 3.
endif.
The fields of the DDIC structure /SME/DED_DYN are changed at runtime dynamicly. Not their value, the fields themselves with fieldname and datatype. I need to work with these NEW fields of the DDIC structure at the same runtime. But somewhere the OLD /SME/DED_DYN is buffered I think, because the method only reads this old structure although in Transaction SE11 it changes to the NEW one at runtime correctly. I have to refresh my whole Web Dynpro Application in the browser and then it works with the new structure.What buffer could this be and how can I clear it, so that my method in WebDynpro can proceed with the new DDIC structure?
I hope you understand my problem.
Thanks for your help!!
Best regards,
IngmarHi,
I create a database table which name is ZTABL1 .
The fields of this table are MANDT and FIELDS1 .
Then i write the code below .
It changes the dbtable dynamically and the values of the fields.
I hope this help you.
DATA : DD03P_TAB LIKE DD03P OCCURS 0 WITH HEADER LINE .
DATA : DD05M_TAB LIKE DD05M OCCURS 0 WITH HEADER LINE .
DATA : DD08V_TAB LIKE DD08V OCCURS 0 WITH HEADER LINE .
DATA : DD12V_TAB LIKE DD12V OCCURS 0 WITH HEADER LINE .
DATA : DD17V_TAB LIKE DD17V OCCURS 0 WITH HEADER LINE .
DATA : DD35V_TAB LIKE DD35V OCCURS 0 WITH HEADER LINE .
DATA : DD36M_TAB LIKE DD36M OCCURS 0 WITH HEADER LINE .
DATA : lt_fcat TYPE lvc_t_fcat ,
ls_fcat TYPE lvc_s_fcat .
DATA : lt_table TYPE REF TO data.
DATA : ZTABL1 .
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
NAME = 'ZTABL1'
TABLES
DD03P_TAB = DD03P_TAB
DD05M_TAB = DD05M_TAB
DD08V_TAB = DD08V_TAB
DD12V_TAB = DD12V_TAB
DD17V_TAB = DD17V_TAB
DD35V_TAB = DD35V_TAB
DD36M_TAB = DD36M_TAB
EXCEPTIONS
ILLEGAL_INPUT = 1
OTHERS = 2
LOOP AT DD05M_TAB WHERE FIELDNAME NE 'MANDT' .
DD05M_TAB-FIELDNAME = 'FIELD2' .
MODIFY DD05M_TAB .
ENDLOOP.
LOOP AT DD03P_TAB WHERE FIELDNAME NE 'MANDT'
DD03P_TAB-FIELDNAME = 'FIELD2' .
MODIFY DD03P_TAB .
ENDLOOP.
LOOP AT DD08V_TAB WHERE FIELDNAME NE 'MANDT' .
DD08V_TAB-FIELDNAME = 'FIELD2' .
APPEND DD08V_TAB .
ENDLOOP.
LOOP AT DD35V_TAB WHERE FIELDNAME NE 'MANDT' .
DD35V_TAB-FIELDNAME = 'FIELD2' .
MODIFY DD35V_TAB .
ENDLOOP.
LOOP AT DD36M_TAB WHERE FIELDNAME NE 'MANDT' .
DD36M_TAB-FIELDNAME = 'FIELD2' .
MODIFY DD36M_TAB .
ENDLOOP.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
NAME = 'ZTABL1'
TABLES
DD03P_TAB = DD03P_TAB
DD05M_TAB = DD05M_TAB
DD08V_TAB = DD08V_TAB
DD35V_TAB = DD35V_TAB
DD36M_TAB = DD36M_TAB
EXCEPTIONS
TABL_NOT_FOUND = 1
NAME_INCONSISTENT = 2
TABL_INCONSISTENT = 3
PUT_FAILURE = 4
PUT_REFUSED = 5
OTHERS = 6
COMMIT WORK AND WAIT .
DATA : lv_subrc like sy-subrc .
CALL FUNCTION 'DDIF_TABL_ACTIVATE'
EXPORTING
NAME = 'ZTABL1'
AUTH_CHK = ' '
IMPORTING
RC = lv_subrc
EXCEPTIONS
NOT_FOUND = 1
PUT_FAILURE = 2
OTHERS = 3
COMMIT WORK AND WAIT .
clear : lt_fcat , lt_fcat[] .
LOOP AT DD03P_TAB .
MOVE-CORRESPONDING DD03P_TAB TO ls_fcat .
APPEND ls_fcat TO lt_fcat .
ENDLOOP.
PERFORM process.
*& Form process
form process.
FIELD-SYMBOLS : <table> TYPE table .
FIELD-SYMBOLS : <s_table> TYPE ANY .
FIELD-SYMBOLS : <f_1> TYPE ANY .
DATA : ls_ZTABL1 type ZTABL1 .
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING it_fieldcatalog = lt_fcat
IMPORTING ep_table = lt_table.
ASSIGN lt_table->* TO <table>.
ASSIGN LOCAL COPY OF INITIAL LINE OF <table> TO <s_table>.
LOOP AT lt_fcat INTO ls_fcat.
IF ls_fcat-fieldname = 'FIELD2' .
ASSIGN COMPONENT ls_fcat-fieldname OF STRUCTURE <s_table> TO <f_1> .
<f_1> = 'A' .
ENDIF.
ENDLOOP.
MOVE-CORRESPONDING <s_table> TO ls_ZTABL1 .
INSERT INTO ZTABL1 values ls_ZTABL1.
endform. " process -
A question about simple transformation
Hello Experts,
I wrote a simple transformation according to certain XML structure. But when I ran the transformation with an XML file, an exception will pop up as following
"Attribute 'requestListId' expected"
So I executed my program once again in debug mode and go inot the transformation. The exception comes from the following line
<tt:attribute name="requestListId" value-ref="REQUEST_LIST_ID"/>
I can open the XML file with IE. I checked the XML carefully and can't find anything wrong.
I really don't why the exception poped up.
Can any expert provide support and help in Transformation programming and Transfromation debug?
Thanks a lot.
Best Regards, Johnney.Have other solution. So close it.
-
Transformation with JDOM (off-topic)
Hi All,
I am wondering if anyone could advice me on how to carry out transformation in a JDOM enviornment. I am familiar with querrying data using XPath with JDOM.
Any tutorial or online reference material would be very much appreciated.
I am running Netbeans 6.1, J2EE 5 Glassfish on Windows XP platform.
Many thanks,
JackIt contains the [org.jdom.transform|http://www.jdom.org/docs/apidocs/org/jdom/transform/package-summary.html] package with classes to do basic transformation. As the documentation says:
Classes to help with transformations, based on the JAXP TrAX classes. JDOMTransformer supports simple transformations with one line of code. Advanced features are available with the JDOMSource and JDOMResult classes that interface with TrAX. -
Dynamically name the worksheet in a simple transformation
we have a workbook created through simple transformation with multiple worksheets and we are stuck because we could not name the work sheets dynamically. please help.
Temporarily see if the problem isn't due to too big an Office database file by quiting Outlook, and moving the Microsoft User Data folder out of the Users -> Documents folder to the desktop. Make sure to setup your e-mail as IMAP on server so it remains on server once you move the data back.
Also how big is your hard drive and how full is it?
Are you using any system maintenance tools? These can cause corruption. -
Help with ABAP Structure to XML - Simple Transformation
Hi guys,
I need help with a Simple Transformation. I am trying to convert a structure in ABAP to XML String but i ma getting short dumps...
Can any of you help.
Thanks in advance.
*& Report ZTESTXML
REPORT ZTESTXML.
class demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
method main.
data : begin of account,
partner type bu_partner,
primary(1),
update(3),
email(50),
memberid(4),
telephone(12),
fax(10),
dept(20),
end of account.
data : xmlstr type xstring.
account-partner = '12345'.
account-primary = 'N'.
account-update = 'Yes'.
account-email = 'zz at hotmail.com'.
account-memberid = '555'.
account-telephone = '123-448-6710'.
account-fax = '345-123-7899'.
account-dept = 'Info Systems'.
call TRANSFORMATION ztest_inttable
SOURCE account = 'account'
result XML xmlstr.
call FUNCTION 'DISPLAY_XML_STRING'
EXPORTING xml_string = xmlstr.
ENDMETHOD.
ENDCLASS.
start-of-SELECTION.
demo=>main( ).
Transformation
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="account"/>
<tt:template>
<IGT_CRM_AccountInfo>
<Account>
<tt:ref name=".account">
<tt:attribute name="Id" value-ref="PARTNER"/>
<tt:attribute name="Primary" value-ref="primary"/>
<tt:attribute name="Update" value-ref="update"/>
<Contact>
<tt:attribute name="EMail" value-ref="email"/>
<tt:attribute name="Member Id" value-ref="memberid"/>
</Contact>
<Communications>
<tt:attribute name="Telephone" value-ref="telephone"/>
<tt:attribute name="Fax" value-ref="fax"/>
</Communications>
<IGT>
<tt:attribute name="Department" value-ref="dept"/>
</IGT>
</tt:ref>
</Account>
</IGT_CRM_AccountInfo>
</tt:template>
</tt:transform>
Dump message
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_ST_REF_ACCESS', was not caught in
procedure "MAIN" "(METHOD)", nor was it propagated by a RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The goal was to access variable "PARTNER". However, this access was not
possible.to convert abap itab or variable into xml string use ABAP key word call transformation.
call transformation (`ID`)
source output = itab[]
result xml xml_out.
where itab is your internal table or any abap variable.
xml_out is type string which will hold the resulting xml.
ID is the transformation program. if you wanto use your own transformation, use your XSLT or ST program there.
Raja -
Creating Simple transformation for an XML data having deep structure
Hi
I have the following XML structure..
<REQUESTS>
<REQUESTNAME>REQ123</REQUESTNAME>
<REQUESTID>1234</REQUESTID>
<CITY>NEWYORK</CITY>
<ZIPCODE>123456</ZIPCODE>
<COMPETENCIES>
<LANGUAGES>
<COMPETENCY>
<SKILL>SAP</SKILL>
<PROFICIENCY>TEST</PROFICIENCY>
<SKILL>JAVA</SKILL>
<PROFICIENCY>TEST123</PROFICIENCY>
(here we may have any number of records for SKILL&PROFICIENCY...)*
</COMPETENCIES>
</LANGUAGES>
</COMPETENCY>
</REQUESTS>
My requirement is to read the above data from an URL and push it into an internal table.
For this I'm trying to use Simple transformations but I'm facing difficulty in doing this.
Can you pl. guide me how to create the transformation and the corresponding code for this.
Best Regards
AnilHi
Here is the actual XML structure..
- <REQUEST>
<COUNTRY />
<ADDRESS />
<CITY />
<ASSIGNTYPE>IP</ASSIGNTYPE>
<CHARGETYPE>CH</CHARGETYPE>
<REMOTEALLOWED>Y</REMOTEALLOWED>
<SALESRATE>EUR</SALESRATE>
<SECURITY>NO</SECURITY>
<TRAVELEXP>Y</TRAVELEXP>
<MAXDAILYRATE />
<CREDENTIALS />
<EXPENDDATE />
<NEWENDDATE />
<NEWEXPENDDATE />
<REPLYBEFORE>2010-11-30</REPLYBEFORE>
<STARTDATE>2010-01-01</STARTDATE>
<ENDDATE>2010-12-31</ENDDATE>
<GCMTYPE>PM</GCMTYPE>
<GCMLEVELFROM>02</GCMLEVELFROM>
<GCMLEVELTO>08</GCMLEVELTO>
<LOCATION>FR43</LOCATION>
<MOBILITY>04</MOBILITY>
<ZIPCODE />
- <COMPETENCIES>
- <LANGUAGES>
- <COMPETENCY>
<SKILL>01106034</SKILL>
<PROFICIENCY>005103</PROFICIENCY>
</COMPETENCY>
</LANGUAGES>
- <ACTIVITIES>
- <COMPETENCY>
<SKILL>01105500</SKILL>
<PROFICIENCY>004507</PROFICIENCY>
</COMPETENCY>
</ACTIVITIES>
- <BUSINESS>
- <COMPETENCY>
<SKILL>01105729</SKILL>
<PROFICIENCY>004605</PROFICIENCY>
</COMPETENCY>
</BUSINESS>
- <INDUSTRIES>
- <COMPETENCY>
<SKILL>01105491</SKILL>
<PROFICIENCY>004901</PROFICIENCY>
</COMPETENCY>
</INDUSTRIES>
- <METHODS>
- <COMPETENCY>
<SKILL>01105591</SKILL>
<PROFICIENCY>004805</PROFICIENCY>
</COMPETENCY>
</METHODS>
- <OFFERINGS>
- <COMPETENCY>
<SKILL>01105840</SKILL>
<PROFICIENCY>005002</PROFICIENCY>
</COMPETENCY>
</OFFERINGS>
- <PRODUCTS>
- <COMPETENCY>
<SKILL>01107304</SKILL>
<PROFICIENCY>004703</PROFICIENCY>
</COMPETENCY>
</PRODUCTS>
</COMPETENCIES>
<CANDIDATES />
</REQUEST>
Here..... <SKILL></SKILL> <PROFICIENCY></PROFICIENCY> can be more than 1 entry...
For this I have created a simple transformation like below..
I have used the tcode 'XSLT_TOOL '..
In SE11 I have created a Table type 'ZCOMPETENCIES' which is having a line type 'ZLANGS'.
ZLANGS is a structure which has another structure called 'ZCOMPETENCY' and this 'ZCOMPETENCY' is having fields
SKILL & PROFICIENCY.
I have used the wizard button which u can find 'XSLT_TOOL '.. and provided the table type ZCOMPETENCIES' and it has automatically created the following transformation...
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
<tt:root name="ROOT" type="?"/>
<tt:root name="COMPETENCIES" type="ddic:ZCOMPETENCIES"/>
<tt:template>
<COMPETENCIES>
<tt:loop ref=".COMPETENCIES">
<ZLANGS>
<COMPETENCY>
<SKILL tt:value-ref="COMPETENCY.SKILL"/>
<PROF tt:value-ref="COMPETENCY.PROF"/>
</COMPETENCY>
</ZLANGS>
</tt:loop>
</COMPETENCIES>
</tt:template>
</tt:transform>
I have written following code to get the data
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.
GET REFERENCE OF gt_person INTO gs_result_xml-value.
gs_result_xml-name = 'COMPETENCIES'.
APPEND gs_result_xml TO gt_result_xml.
TRY.
CALL TRANSFORMATION ZTEST_TRAN
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 'E'.
ENDTRY.
Please let me know if you need any further details..
Best Regards
Anil -
Anything for DDIC-structure to XSD transformation available???
Hi,
do you know a function module/class/transaction that allows <b>to transform any ddic structure to its XSD representation</b>?
I know that with "CALL TRANSFORMATION" you can transform ddic structures to an XML representation. But I need a simple XSD (Scheme) representation.
Any idea??Hi Christian,
the XSD editor is part of the XI Integration Builder and is running in the design part (Java). There you can create manually data types and the editor is converting that to XSD automatically. Another option there is to import existing XSD... My problem is I have a lot of ddic structures in R/3 and I need them for XI. -> import
I have asked this question also in the XI forum - not really helpful answers yet.
I thought there must be a standard SAP function module to create that XSD presentation. If not you have to create complex structures manually within XI. Nice work
Thanks anyway and best regards to Dr. Muller -
Simple Transformation to deserialize an XML file into ABAP data structures?
I'm attempting to write my first simple transformation to deserialize
an XML file into ABAP data structures and I have a few questions.
My simple transformation contains code like the following
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates"
xmlns:pp="http://www.sap.com/abapxml/types/defined" >
<tt:type name="REPORT" line-type="?">
<tt:node name="COMPANY_ID" type="C" length="10" />
<tt:node name="JOB_ID" type="C" length="20" />
<tt:node name="TYPE_CSV" type="C" length="1" />
<tt:node name="TYPE_XLS" type="C" length="1" />
<tt:node name="TYPE_PDF" type="C" length="1" />
<tt:node name="IS_NEW" type="C" length="1" />
</tt:type>
<tt:root name="ROOT2" type="pp:REPORT" />
<QueryResponse>
<tt:loop ref="ROOT2" name="line">
<QueryResponseRow>
<CompanyID>
<tt:value ref="$line.COMPANY_ID" />
</CompanyID>
<JobID>
<tt:value ref="$line.JOB_ID" />
</JobID>
<ExportTypes>
<tt:loop>
<ExportType>
I don't know what to do here (see item 3, below)
</ExportType>
</tt:loop>
</ExportTypes>
<IsNew>
<tt:value ref="$line.IS_NEW"
map="val(' ') = xml('false'), val('X') = xml('true')" />
</IsNew>
</QueryResponseRow>
</tt:loop>
</QueryResponse>
</tt:loop>
1. In a DTD, an element can be designated as occurring zero or one
time, zero or more times, or one or more times. How do I write the
simple transformation to accommodate these possibilities?
2. In trying to accommodate the "zero or more times" case, I am trying
to use the <tt:loop> instruction. It occurs several layers deep in the
XML hierarchy, but at the top level of the ABAP table. The internal
table has a structure defined in the ABAP program, not in the data
dictionary. In the simple transformation, I used <tt:type> and
<tt:node> to define the structure of the internal table and then
tried to use <tt:loop ref="ROOT2" name="line"> around the subtree that
can occur zero or more times. But every variation I try seems to get
different errors. Can anyone supply a working example of this?
3. Among the fields in the internal table, I've defined three
one-character fields named TYPE_CSV, TYPE_XLS, and TYPE_PDF. In the
XML file, I expect zero to three elements of the form
<ExportType exporttype='csv' />
<ExportType exporttype='xls' />
<ExportType exporttype='pdf' />
I want to set field TYPE_CSV = 'X' if I find an ExportType element
with its exporttype attribute set to 'csv'. I want to set field
TYPE_XLS = 'X' if I find an ExportType element with its exporttype
attribute set to 'xls'. I want to set field TYPE_PDF = 'X' if I find
an ExportType element with its exporttype attribute set to 'pdf'. How
can I do that?
4. For an element that has a value like
<ErrorCode>123</ErrorCode>
in the simple transformation, the sequence
<ErrorCode> <tt:value ref="ROOT1.CODE" /> </ErrorCode>
seems to work just fine.
I have other situations where the XML reads
<IsNew value='true' />
I wanted to write
<IsNew>
<tt:value ref="$line.IS_NEW"
map="val(' ') = xml('false'), val('X') = xml('true')" />
</IsNew>
but I'm afraid that the <tt:value> fails to deal with the fact that in
the XML file the value is being passed as the value of an attribute
(named "value"), rather than the value of the element itself. How do
you handle this?Try this code below:
data l_xml_table2 type table of xml_line with header line.
W_filename - This is a Path.
if w_filename(02) = '
open dataset w_filename for output in binary mode.
if sy-subrc = 0.
l_xml_table2[] = l_xml_table[].
loop at l_xml_table2.
transfer l_xml_table2 to w_filename.
endloop.
endif.
close dataset w_filename.
else.
call method cl_gui_frontend_services=>gui_download
exporting
bin_filesize = l_xml_size
filename = w_filename
filetype = 'BIN'
changing
data_tab = l_xml_table
exceptions
others = 24.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif. -
Simple Transformation XML to ABAP Content of tag with subtrees to string field
Hi,
I have an requirement in which I have to do a transformation from an XML file to an structure.
I need get the value of a tag that have subtrees and move that to a field in my structure.
Example:
<TAG1>value1</TAG1>
<TAG2>value2</TAG2>
<TAG3>
<TAG4>value4</TAG4>
<TAG5>value5</TAG5>
</TAG3>
Result expected in ABAP Structure:
field1 -> tag1
field2 -> tag2
field3 -> <TAG4>value4</TAG4><TAG5>value5</TAG5>
The contents of the tag TAG3 is variable, so I want to store it as a string.
Can I make this with Simple Transformation?
In my tests I can move only the value of each child tag for the given field structure.
This syntax dont work:
<TAG3 tt:value-ref="STRUCTURE.FIELD3"/>
Thanks and Regards,
Miguel MottaHi Miguel
Have a look at below snippets. Here I have tried to escape the text inside TAG3 so that it gets treated as single node during transformation.
ABAP code
DATA: BEGIN OF result,
col1 TYPE string,
col2 TYPE string,
col3 TYPE string,
END OF result.
DATA: xml_string TYPE string VALUE
'<ROOT> <TAG1>value1</TAG1> <TAG2>value2</TAG2> <TAG3> <TAG4>value4</TAG4> <TAG5>value5</TAG5> </TAG3> </ROOT>',
part1 TYPE string,
part2 TYPE string,
part3 TYPE string.
* Escape the text inside TAG3 tag
FIND REGEX '(.*<TAG3>)(.*)(</TAG3>.*)' IN xml_string SUBMATCHES part1 part2 part3.
IF sy-subrc EQ 0.
part2 = escape( val = part2 format = cl_abap_format=>e_xml_text ).
* REPLACE ALL OCCURRENCES OF '<' IN part2 WITH '<'.
* REPLACE ALL OCCURRENCES OF '>' IN part2 WITH '>'.
xml_string = part1 && part2 && part3.
ENDIF.
TRY.
* Display xml
cl_abap_browser=>show_xml( EXPORTING xml_string = xml_string ).
* Deserialization
CALL TRANSFORMATION zmtest
SOURCE XML xml_string
RESULT para = result.
* Check result
WRITE:/ 'COL1=', result-col1,
/ 'COL2=', result-col2,
/ 'COL3=', result-col3.
CATCH cx_st_error.
* Error handling
MESSAGE 'Error in Simple Transformation'
TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.
Transformation code
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" template="temp" version="0.1">
<tt:root name="PARA"/>
<tt:template name="temp">
<ROOT>
<TAG1>
<tt:value ref="PARA.COL1"/>
</TAG1>
<TAG2>
<tt:value ref="PARA.COL2"/>
</TAG2>
<TAG3>
<tt:value ref="PARA.COL3"/>
</TAG3>
</ROOT>
</tt:template>
</tt:transform> -
Simple Transformation from Adobe Form XML document to Dictionary structures
I have an XML document that I am receiving via email (the XML document is generated from an Adobe Interactive form). I would like to write a simple transformation that will map that XML document to a structure and internal table in my ABAP program. I am new to Simple Transformations and I am having trouble working out how to write a simple transformation for this type of XML document. I would prefer to write a custom transformation rather than using the identity transformation (ID). I would appreciate any help you can provide.
Please refer to the below for an example of the XML file.
This maps directly to 2 dictionary structures that exist within our system containing all of the same components. PIM_REQUEST_HDR has a corresponding SAP dictionary structure Y_REQUEST_HDR and PIM_REQUEST_ITEMS has a corresponding SAP dictionary structure Y_REQUEST_ITEMS.
Can anyone help with some instructions or examples of how to create the simple transformation?
Thanks for your help! We are using ECC 6.0
Sample XML to be transformed:
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<SFPSY>
<DATE>2007-07-03</DATE>
<TIME>07:25:21</TIME>
<USERNAME>TLCITY</USERNAME>
<SUBRC>0</SUBRC>
</SFPSY>
<PIM_REQUEST_HDR>
<MANDT />
<REQ_NUM />
<REQ_DESC>blah blah blah</REQ_DESC>
<PROC_AREA>CTC</PROC_AREA>
<REQUESTED>2007-07-03</REQUESTED>
<REQUIRED>2007-07-03</REQUIRED>
<REQUESTOR>TLCITY</REQUESTOR>
<MOD_TYPE>SAP Note manual changes</MOD_TYPE>
<SAPNOTE_NUM>59549656</SAPNOTE_NUM>
<SAPMSG_NUM>0000000000</SAPMSG_NUM>
<TECH_SCRIPT />
<REASON />
<DEV_ENV>ECC6</DEV_ENV>
<INSTALL_NO>2861655161</INSTALL_NO>
<BASIS_REL>700</BASIS_REL>
<REG_STATUS />
<REJ_REASON />
<APP_DATE />
<REJ_DATE />
<APPROVER />
<REGISTRATOR />
<REG_DATE />
</PIM_REQUEST_HDR>
<PIM_REQUEST_ITEMS>
<DATA>
<MANDT />
<REQ_NUM />
<PGMID>R3TR</PGMID>
<OBJECT>PROG</OBJECT>
<OBJ_NAME>RSDIJOIJSDOIF</OBJ_NAME>
<ACCESSKEY />
</DATA>
<DATA>
<MANDT />
<REQ_NUM />
<PGMID>R3TR</PGMID>
<OBJECT>PROG</OBJECT>
<OBJ_NAME>RRRSDIJOIJS03</OBJ_NAME>
<ACCESSKEY />
</DATA>
</PIM_REQUEST_ITEMS>
</data>I have solved this one with the help of another collegue.
To simplify, we changed the XML to be as follows:
[code]
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<PIM_REQUEST>
<REQ_HDR>
<MANDT />
<REQ_NUM />
<REQ_DESC>Key required for pricing routines</REQ_DESC>
<PROC_AREA>SD</PROC_AREA>
<REQUESTED>2007-07-30</REQUESTED>
<REQUIRED>2007-08-02</REQUIRED>
<REQUESTOR>TLCITY</REQUESTOR>
<MOD_TYPE>SAP Note: Manual Changes</MOD_TYPE>
<SAPNOTE_NUM>0000000000</SAPNOTE_NUM>
<SAPMSG_NUM>0000000000</SAPMSG_NUM>
<TECH_SCRIPT>TS-2498 Pricing Routines</TECH_SCRIPT>
<REASON>New pricing routines required</REASON>
<DEV_ENV>ECC6</DEV_ENV>
<INSTALL_NO>029</INSTALL_NO>
<BASIS_REL>700</BASIS_REL>
<REG_STATUS />
<REJ_REASON />
<APP_DATE />
<REJ_DATE />
<APPROVER />
<REGISTRATOR />
<REG_DATE />
</REQ_HDR>
<KEY_DETAILS>
<DATA>
<MANDT />
<REQ_NUM />
<PGMID>R3TR</PGMID>
<OBJECT>PROG</OBJECT>
<OBJ_NAME>RVGHT902</OBJ_NAME>
<ACCESSKEY />
</DATA>
<DATA>
<MANDT />
<REQ_NUM />
<PGMID>R3TR</PGMID>
<OBJECT>PROG</OBJECT>
<OBJ_NAME>RVGHT901</OBJ_NAME>
<ACCESSKEY />
</DATA>
</KEY_DETAILS>
</PIM_REQUEST>
</data>
[/code]
This maps directly to 1 dictionary structure that exists within our system containing all of the same components. PIM_REQUEST has a corresponding SAP dictionary structure Y_REQUEST_HDR which is a deep structure and has within it a structure REQ_HDR and a table KEY_DETAILS.
The corresponding simple transformation we have then used is as follws:
[code]
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="root"/>
<tt:template>
<data>
<PIM_REQUEST>
<tt:copy ref="root"/>
</PIM_REQUEST>
</data>
</tt:template>
</tt:transform>
[/code]
Alternatively the following 2 options also work:
Option 2:
[code]
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="root"/>
<tt:template>
<data>
<PIM_REQUEST>
<REQ_HDR>
<tt:copy ref="root.REQ_HDR"/>
</REQ_HDR>
<KEY_DETAILS>
<tt:loop name="KEY_DETAILS" ref="root.KEY_DETAILS">
<DATA>
<tt:copy ref="$KEY_DETAILS"/>
</DATA>
</tt:loop>
</KEY_DETAILS>
</PIM_REQUEST>
</data>
</tt:template>
</tt:transform>
[/code]
Option 3:
[code]
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="root"/>
<tt:template>
<data>
<PIM_REQUEST>
<REQ_HDR>
<MANDT tt:value-ref="root.REQ_HDR.MANDT"/>
<REQ_NUM tt:value-ref="root.REQ_HDR.REQ_NUM"/>
<REQ_DESC tt:value-ref="root.REQ_HDR.REQ_DESC"/>
<PROC_AREA tt:value-ref="root.REQ_HDR.PROC_AREA"/>
<REQUESTED tt:value-ref="root.REQ_HDR.REQUESTED"/>
<REQUIRED tt:value-ref="root.REQ_HDR.REQUIRED"/>
<REQUESTOR tt:value-ref="root.REQ_HDR.REQUESTOR"/>
<MOD_TYPE tt:value-ref="root.REQ_HDR.MOD_TYPE"/>
<SAPNOTE_NUM tt:value-ref="root.REQ_HDR.SAPNOTE_NUM"/>
<SAPMSG_NUM tt:value-ref="root.REQ_HDR.SAPMSG_NUM"/>
<TECH_SCRIPT tt:value-ref="root.REQ_HDR.TECH_SCRIPT"/>
<REASON tt:value-ref="root.REQ_HDR.REASON"/>
<DEV_ENV tt:value-ref="root.REQ_HDR.DEV_ENV"/>
<INSTALL_NO tt:value-ref="root.REQ_HDR.INSTALL_NO"/>
<BASIS_REL tt:value-ref="root.REQ_HDR.BASIS_REL"/>
<REG_STATUS tt:value-ref="root.REQ_HDR.REG_STATUS"/>
<REJ_REASON tt:value-ref="root.REQ_HDR.REJ_REASON"/>
<APP_DATE tt:value-ref="root.REQ_HDR.APP_DATE"/>
<REJ_DATE tt:value-ref="root.REQ_HDR.REJ_DATE"/>
<APPROVER tt:value-ref="root.REQ_HDR.APPROVER"/>
<REGISTRATOR tt:value-ref="root.REQ_HDR.REGISTRATOR"/>
<REG_DATE tt:value-ref="root.REQ_HDR.REG_DATE"/>
</REQ_HDR>
<KEY_DETAILS>
<tt:loop ref="root.KEY_DETAILS" name="KEY_DETAILS">
<DATA>
<MANDT tt:value-ref="$KEY_DETAILS.MANDT"/>
<REQ_NUM tt:value-ref="$KEY_DETAILS.REQ_NUM"/>
<PGMID tt:value-ref="$KEY_DETAILS.PGMID"/>
<OBJECT tt:value-ref="$KEY_DETAILS.OBJECT"/>
<OBJ_NAME tt:value-ref="$KEY_DETAILS.OBJ_NAME"/>
<ACCESSKEY tt:value-ref="$KEY_DETAILS.ACCESSKEY"/>
</DATA>
</tt:loop>
</KEY_DETAILS>
</PIM_REQUEST>
</data>
</tt:template>
</tt:transform>
[/code] -
Problem with Simple Transformation
Hi to all
I am working with ST, and have the following issue:
I have a highly nested xml structure, and, when I execute a abap program with a myself ST, only the last one data is passed to internal tables.
I want to know: how can I do to get that all the information from xml file to store to internal tables but not only the latest information structure?
For example I have the following xml file, and only the last occurence of <PSMService> is update in internal tables.
Thank you very much for your help.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InvoicingInformation>
<Services>
<PSMServices>
<PSMService ContractCode="STF0996" InvoicePeriod="2011-01-31T00:00:00-06:00" ReceiptPointCode="347">
<Transactions>
<Transaction ReceiptPointCode="347" DeliveryPointCode="167" ExitTramoCode="15" SectorCode="SECTP_GNV">
</Transaction>
</Transactions>
<DailyCharges>
<DailyCharge ChargeCode="CHRGS_FIJO" Date="2011-01-01T00:00:00-06:00" Quantity="93" QuantityUnit="KPC">
</DailyCharge>
<DailyCharge ChargeCode="CHRGS_FIJO_COP" Date="2011-01-01T00:00:00-06:00" Quantity="93" QuantityUnit="KPC">
</DailyCharge>
</DailyCharges>
<AggregateCharges>
<AggregateCharge ChargeCode="CHRGS_DESVIO" IsTiered="false" Quantity="0" QuantityUnit="KPC" CurrencyCode="COP">
</AggregateCharge>
<AggregateCharge ChargeCode="CHRGS_DESVIO_US$" IsTiered="false" Quantity="0" QuantityUnit="KPC" CurrencyCode="USD">
</AggregateCharge>
</AggregateCharges>
</PSMService>
<PSMService ContractCode="STF0996" InvoicePeriod="2011-01-31T00:00:00-06:00" ReceiptPointCode="347">
<Transactions>
<Transaction ReceiptPointCode="347" DeliveryPointCode="192A" ExitTramoCode="16" SectorCode="SECTP_GNV">
</Transaction>
</Transactions>
<DailyCharges>
<DailyCharge ChargeCode="CHRGS_FIJO" Date="2011-01-01T00:00:00-06:00" Quantity="112" QuantityUnit="KPC">
</DailyCharge>
<DailyCharge ChargeCode="CHRGS_FIJO_COP" Date="2011-01-01T00:00:00-06:00" Quantity="112" QuantityUnit="KPC">
</DailyCharge>
</DailyCharges>
<AggregateCharges>
<AggregateCharge ChargeCode="CHRGS_FIJO" IsTiered="false" Quantity="560" QuantityUnit="KPC" CurrencyCode="USD">
</AggregateCharge>
<AggregateCharge ChargeCode="CHRGS_FIJO_COP" IsTiered="false" Quantity="560" QuantityUnit="KPC" CurrencyCode="COP">
</AggregateCharge>
</AggregateCharges>
</PSMService>
<PSMService ContractCode="STF0996" InvoicePeriod="2011-01-31T00:00:00-06:00" ReceiptPointCode="360">
<Transactions>
<Transaction ReceiptPointCode="260A" DeliveryPointCode="167" ExitTramoCode="15" SectorCode="SECTP_GNV">
</Transaction>
<Transaction ReceiptPointCode="260B" DeliveryPointCode="168" ExitTramoCode="15" SectorCode="SECTP_GNV">
</Transaction>
</Transactions>
<DailyCharges>
<DailyCharge ChargeCode="CHRGS_DESVIO" Date="2011-01-01T00:00:00-06:00" Quantity="0" QuantityUnit="KPC">
</DailyCharge>
<DailyCharge ChargeCode="CHRGS_DESVIO_US$" Date="2011-01-01T00:00:00-06:00" Quantity="0" QuantityUnit="KPC">
</DailyCharge>
</DailyCharges>
<AggregateCharges>
<AggregateCharge ChargeCode="CHRGS_DESVIO" IsTiered="false" Quantity="0" QuantityUnit="KPC" CurrencyCode="COP">
</AggregateCharge>
<AggregateCharge ChargeCode="CHRGS_DESVIO_US$" IsTiered="false" Quantity="0" QuantityUnit="KPC" CurrencyCode="USD">
</AggregateCharge>
</AggregateCharges>
</PSMService>
</PSMServices>
</Services>
</InvoicingInformation>
Edited by: Thomas Zloch on May 10, 2011 12:46 PM - code tags addedHi Charles.
Thank you.
This is a piece of the simple transformation:
<Services>
<!-- PSM Services -->
<PSMServices tt:extensible="deep-dynamic">
<tt:loop name="PSMService" ref="TABLA_PSM_SERVICES">
<PSMService tt:extensible="deep-dynamic">
<tt:attribute name="ContractCode" value-ref="$PSMService.ContractCode"/>
<tt:attribute name="InvoicePeriod" value-ref="$PSMService.InvoicePeriod"/>
<tt:attribute name="ReceiptPointCode" value-ref="$PSMService.ReceiptPointCode"/>
<tt:attribute name="DeliveryPointCode" value-ref="$PSMService.DeliveryPointCode"/>
<tt:attribute name="ExitTramoCode" value-ref="$PSMService.ExitTramoCode"/>
<tt:attribute name="SectorCode" value-ref="$PSMService.SectorCode"/>
<tt:attribute name="MarketCode" value-ref="$PSMService.MarketCode"/>
<tt:attribute name="TransportMarketCode" value-ref="$PSMService.TransportMarketCode"/>
<tt:attribute name="InvoiceBy" value-ref="$PSMService.InvoiceBy"/>
<tt:attribute name="MarketCapacity" value-ref="$PSMService.MarketCapacity"/>
<tt:attribute name="MarketCapacityUnitCode" value-ref="$PSMService.MarketCapacityUnitCode"/>
<tt:attribute name="SAPMaterialCode" value-ref="$PSMService.SAPMaterialCode"/>
<Transactions tt:extensible="deep-dynamic">
<tt:loop name="Transaction" ref=".TABLA_PSM_TRANSACTIONS">
<Transaction tt:extensible="deep-dynamic">
<tt:attribute name="ReceiptPointCode" value-ref="$Transaction.ReceiptPointCode"/>
<tt:attribute name="DeliveryPointCode" value-ref="$Transaction.DeliveryPointCode"/>
<tt:attribute name="ExitTramoCode" value-ref="$Transaction.ExitTramoCode"/>
<tt:attribute name="SectorCode" value-ref="$Transaction.SectorCode"/>
<tt:attribute name="MarketCode" value-ref="$Transaction.MarketCode"/>
<tt:attribute name="MarketCapacity" value-ref="$Transaction.MarketCapacity"/>
<tt:attribute name="Firm" value-ref="$Transaction.Firm"/>
<tt:attribute name="Overrun " value-ref="$Transaction.Overrun "/>
<tt:attribute name="UnitCode" value-ref="$Transaction.UnitCode"/>
<tt:attribute name="SAPMaterialCode" value-ref="$Transaction.SAPMaterialCode"/>
</Transaction>
</tt:loop>
</Transactions>
<DailyCharges tt:extensible="deep-dynamic">
<tt:loop name="DailyCharge" ref=".TABLA_PSM_DAILYCHARGES">
<DailyCharge tt:extensible="deep-dynamic">
<tt:attribute name="ChargeCode" value-ref="$DailyCharge.ChargeCode"/>
<tt:attribute name="Date" value-ref="$DailyCharge.Date"/>
<tt:attribute name="Quantity" value-ref="$DailyCharge.Quantity"/>
<tt:attribute name="QuantityUnit" value-ref="$DailyCharge.QuantityUnit"/>
</DailyCharge>
</tt:loop>
</DailyCharges>
<AggregateCharges tt:extensible="deep-dynamic">
<tt:loop name="AggregateCharge" ref=".TABLA_PSM_AGGREGATECHARGES">
<AggregateCharge tt:extensible="deep-dynamic">
<tt:attribute name="ChargeCode" value-ref="$AggregateCharge.ChargeCode"/>
<tt:attribute name="IsTiered" value-ref="$AggregateCharge.IsTiered"/>
<tt:attribute name="Quantity" value-ref="$AggregateCharge.Quantity"/>
<tt:attribute name="QuantityUnit" value-ref="$AggregateCharge.QuantityUnit"/>
<tt:attribute name="CurrencyCode" value-ref="$AggregateCharge.CurrencyCode"/>
<tt:attribute name="TariffRate" value-ref="$AggregateCharge.TariffRate"/>
<tt:attribute name="TariffRateUnit" value-ref="$AggregateCharge.TariffRateUnit"/>
</AggregateCharge>
</tt:loop>
</AggregateCharges>
</PSMService>
</tt:loop>
</PSMServices>
</Services>
Edited by: Thomas Zloch on May 10, 2011 12:47 PM - code tags added
Maybe you are looking for
-
For about a 2 weeks now as the computer warms up, various colored pixels or interference comes on the screen but is only seen while the screen is black such as loading games. When doing normal thing such as web browsing or playing the game it is fine
-
I have an Intel iMac. I have cable internet through Comcast. About a week ago I started getting "server not found" messages while loading pages, but if I clicked refresh the page would load. This occurred with Safari, Firefox and Internet Explorer. T
-
How do I change the e-mail address associated with Facetime on my iPhone?
On my iPhone, under Settings -> Facetime, if I switch this to "on", I am immediately prompted to provide a password assocaited to an old e-mail address. How do I change this e-mail address? My app store account is correct, and I don't think this old
-
Error connecting using JCO.Client: null
Hi, I created a WD app which uses the RFC FM. I followed How-To-build-webdynpro.pdf document to create the WD and trying to deploy and run, I see the view page but when I trigger the action via button UI element I get following error as exception i
-
Boot Camp Partition Size?
I'm thinking of installing a boot camp partion. Does boot camp choose the size or do I. If I do, what's a good size to make it. I really will only run Office 2003 and my BlackBerry Desktop software and some browsing with IE.