Problem with Transformation Routine
Hi all
I am using a DSO 0FIGL_O02 taking data from the DataSource 0FI_GL_4 . I have a field 0Customer to the DSO & for that i´m taking data from the another DSO ZPCA_EC3 .
The folllowing is the Tranformation Routine i have tried
Routine 1,
Data : zcustomer type /BIC/AZPCA_EC300-CUSTOMER.
select single customer
from /BIC/AZPCA_EC300
into ZCUSTOMER
where AC_DOC_NO = SOURCE_FIELDS-BELNR.
RESULT = zcustomer.
Routine 2.
Data : zcustomer type /BIC/AZPCA_EC300-CUSTOMER.
select single customer
from /BIC/AZPCA_EC300
into ZCUSTOMER
where AC_DOC_NO = SOURCE_FIELDS-BELNR
and COMP_CODE = SOURCE_FIELDS-bukrs
and FISCYEAR = SOURCE_FIELDS-gjahr.
RESULT = zcustomer.
I dont get any errors for this Routine , But when i run the DTP it is going on Running & Running for hours, with no results , But again no errors also.
What could be the problem ?
Could anyone help me write a better routine .here is my requirement
I want to pick up 0Customer field data from ZPCA_EC3 based on 0AC_DOC_NO in both ZPCA_EC3 & 0FI_GL_4 DataSource.
Regards
Ramesh
Hi,
well I don't know the key of your ods. But the first check would be to use fields in the where clause which are in the key or a additional index. Another option might be to select the data for the complete data package at once into a internal table and access the internal table in the routine. May be you can also do the whole thing in the start routine.
regards
Siggi
Similar Messages
-
Problem with standard Routine "Seniority"
Hi gurus,
I have a problem with the routine "Seniority" that evaluate the length of service for the infoObject 0SRVCLEN - Length of Service. It is a standard routine in the update rule 0HR_PA_0.
The problem occurs when the Employee has less than a year of service. The result of the routine is "0" but in the BW query "0" is interpreted like "#" - Not assigned.
How can I change the value of the Not assigned result?
This is the main part of the routine:
IF NOT EMPLOYEE_WA-ENTRYDATE IS INITIAL.
RESULT = ULTIMO0(4) - EMPLOYEE_WA-ENTRYDATE0(4).
IF ULTIMO4(4) LT EMPLOYEE_WA-ENTRYDATE4(4).
RESULT = RESULT - 1.
endif.
ENDIF.
Thanks
AlbertoSonal,
To find the number of items please correct the code as below:
Determine number of PO item lines
LOOP AT TKOMV WHERE<b> KNUMV = TKOMV-KNUMV</b>
AND NOT KPOSN IS INITIAL.
AT NEW KPOSN.
I = I + 1.
ENDAT.
ENDLOOP.
Keep rest all code as it is.
Let me know if this works,
Thanks. -
Problem with transforming coordinate systems
Hiho,
i've got a problem with transforming coordinate systems.
When I'm trying to transform a sdo_geometry object to another coordinate sytem and then back to the old system, the coordinates are not the same.
Here's an example:
StartSystem SRID is 8220 (Longitude / Latitude (DHDN))
TargetSystem SRID is 8307 (Longitude / Latitude (WGS84))
Original object:
Polygon: {ExteriorRing: LineString: { (0.0, -90.0) (1.5, 0.0) (0.0, 90.0) (4.5, 0.0) (0.0, -90.0)} }
Transformed object:
Polygon: {ExteriorRing: LineString: { (0.0, -5156.620156177403) (85.94366926962347, 0.0) (0.0, 5156.620156177403) (257.8310078088704, 0.0) (0.0, -5156.620156177403)} }
Transformed back to old system:
Polygon: {ExteriorRing: LineString: { (0.0, -5156.620156177403) (4924.209525017614, 0.0) (0.0, 5156.620156177403) (14772.628575052844, 0.0) (0.0, -5156.620156177403)} }
Any ideas what to do?
Thanks for the help in advance.
DirkHi Dirk
Since the transform you are trying to do is just a datum conversion of lat./long. coordinates, even the first transform yields obvious rubbish. What you have provided here does not illustrate how you submitted your polygon to CS_TRANSFORM.
Provide the syntax of your construction of the corresponding SDO_GEOMETRY object and your SQL select statement that gave these results.
Bruce -
Problems with transformation; infoobject not updated in DSO.
Hi all,
We are having some problems with one of our transformations between PSA and DSO.
Suddenly some of the fields are not filled in the DSO. The mapping for field Sales order number worked fine, and then I added an infoObject in the DSO to hold the info for Sales order item. I also replaced the infoobject that was supposed to hold the sales order number. After this, none of the two fields has any data in DSO. I checked the PSA, and the data is available here. I tested the rule in Rule details and for sales order number it gives the correct result, but for sales order item it gives a runtime error; assertion failed. I checked on SAP Notes, and found 929934. But the corrections are already added in our system.
Has anyone got any ideas on what to do?
BR,
LindaHi,
There are a number of problems in Transformation when either a source field or target field is changed.
This can lead to inconsistent transformation.
You can raise a message to SAP or best thing is if possible delete the Transformation and create a new one.
Regards,
Nitin -
Problems with transforming special characters
Hi,
I develop a small educational application ( http://sourceforge.net/projects/pauker/ ). I work with JDK-1.4.0 on Mandrake Linux 8.2. At first I used serialized objects to save the lessons to a file. This worked well until I wanted to change some public members of the involved classes. That's why I switched over to the new and shiny XML. Now I have a different problem!
Pauker saves its lessons in gziped XML files. Users from all over the world can create lessons containing very different characters. There are European characters like ������� and asian characters. Loading this lessons on a system with a different encoding works fine. Saving such a lesson on a system with a different encoding can destroy the lesson.
Example:
On a german system a user creates a lesson with the letter � on a card side and saves it. A different user working on an english system loads this lesson. The character "�" is displayed correctly. The english user saves the lesson. The character "�" will be replaced by a question mark in the xml file. Next time the english user loads the lesson she will not see "�" but "?" on the display.
Here is a little example program that does the transformation in exactly the way Pauker does. Please test it out.
import java.io.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
public class XMLTest {
public XMLTest() {
try {
// create document
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
// fill document
Element element = document.createElement("Element");
document.appendChild(element);
element.appendChild(document.createTextNode("�������"));
// transform to XML
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
//transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
DOMSource source = new DOMSource(document);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
StreamResult result = new StreamResult(outputStream);
transformer.transform(source, result);
System.out.println("original: �������");
System.out.println(outputStream.toString());
} catch (Exception e) {
e.printStackTrace();
System.out.println();
public static void main(String[] args) {
new XMLTest();
So what do I have to do to fix this problem? I have a lot of new features waiting in the CVS but this bug is still open and discussed. I dont want to release a new version with such a gaping hole in it...
Thanks a lot!
If you prefer to reply peronally, please use Ronny.Standtke at gmx.deI don't see how you can say that there's a problem with saving your XML files when the code you post doesn't actually save it to a file. Your transform is being written to a ByteArrayOutputStream, which isn't used except for this statement which I assume is for debugging:System.out.println(outputStream.toString());Of course that is useless for debugging the problem you describe, for two reasons:
1. the toString() method uses your system's default encoding, which may be ISO-8859-1 but is definitely not UTF-8. You could write toString("UTF-8") but that is a waste of time because:
2. You use System.out.println() to examine the data, which writes it to a console that also probably does not use UTF-8. I don't know what encoding it does use, but UTF-8 is unlikely.
So, save your files using the UTF-8 encoding as robadmin suggested. And to test the result, make sure you use a tool that understands the UTF-8 encoding. -
Help with Transformation routine
Hi,
I have a transformation routine from a DSO to a cube. The DSO contains two infoobjects ( Form, Brand ) which are mapped to infoobject Material in the cube. My requirement is that i need to populate the material number based on the brand and form available in the DSO. Can you please help me with the routine to be written for material ?
Regards
Snehith.Hi,
perform below steps in start routine .
create one internal as t_material having 3 fields
and then write select query as :
SELECT material
brand
form
FROM /BIC/PGPUMATL
INTO TABLE t_material
FOR ALL ENTRIES IN SOURCE_PACKAGE
WHERE brand EQ SOURCE_PACKAGE-brand
form EQ SOURCE_PACKAGE- form
In transformation routine of material:
write below logic :
FIELD-SYMBOLS :<fs_ t_material > TYPE y_ t_material .
*" Get material class value from table /bic/agpud009900
READ TABLE t_material
ASSIGNING <fs_ t_material >
WITH KEY brand = SOURCE_FIELDS-brand
form = SOURCE_FIELDS- form
IF sy-subrc EQ 0
AND <fs_ t_material > IS ASSIGNED.
MOVE <fs_ t_material >material TO RESULT.
ENDIF.
Hope this helps you
Thanks . -
Strange problem with Transformations Mapping
Hi All,
I am facing a strange problem with respect to the data loading to ods from data source.
I have mapped a field, Number of days which is the difference between posting date and payment date (field in ECC, length char 5) mapped to characteristic zdate_1 length 5 without alpha conversion. (Date difference is calculated in ECC)
When I load data in production it is not fetching the records from PSA (Values exist for this field in PSA).
I have 90 fields in datasource whichbring data to PSA.
Same is working perfectly in Quality and Dev servers.
Where could the problem be?
Please suggest a solution.
Regards
JogaAny Ideas...
-
Problem with transform(source, result)
Dear gurus,
I have DOM document as source in my java program. The document has data for 1 record insert into a table.
The insert will be done on the database side with dbms_xmlsave.insertxml(insctx, xmldoc) where xmldoc is my document and has VARCHAR2 type.
I am looking for the correct syntax at the time when I do
transformer.transform(source, result);
so that I can pass 'result' to my database function that will do the insert with dbms_xmlsave.
Can I have 'result' as of type 'String'?
Thank you.
AnatoliyFolks,
Never mind - I found an example, I am using
Writer outWriter = new StringWriter ( ) ;
StreamResult outResult = new StreamResult ( outWriter ) ;
transformer.transform ( source, outResult ) ;
String strResult = null;
strResult = outResult.getWriter ( ) .toString ( ) ;
but now the problem is with the first line of the xml doc which is
<?xml version = '1.0'?>
The CallableStatement doesn't like the single quotes! What should I do - get rid of the first line OR change single quote with douable quotes OR may be something else?
Thank you.
Anatoliy -
Performance problem with transformations
Hi,
I'm trying to make an animation with a perspective transformation. In each iterationof the loop, two points are altered.
It works very well, but it is extremely slow. Is there a possibility to speed this up?
while() {
i++;
PerspectiveTransform pt = new PerspectiveTransform().getQuadToQuad(
10, 10, 200, 0, 0, 190, 200, 200,
10-i, 10, 200, 0, 0, 190+1, 200, 200);
WarpPerspective wp = new WarpPerspective(pt);
RenderedOp rendOp = createWarpImage(bi, wp);
RenderedImage renImage = rendOp.createInstance();
AffineTransform at = new AffineTransform();
at.scale(0.5, 0.5);
at.translate(100, 100);
g2.drawRenderedImage(renImage, at);
public RenderedOp createWarpImage(RenderedImage image, Warp warp) {
ParameterBlock paramBlock = new ParameterBlock();
paramBlock.addSource(image);
paramBlock.add(warp);
return JAI.create("warp", paramBlock);
}Where is the while loop? direct in your paint method? If yes, here is your problem, because your holding the dispatcher thread. What you need is a render loop:
MyClass implements Runnable
int maxFPS ...
public void run() {
getCurrentMillis()...
doTheBigTransform....
EventQueue.invokeLater(new Runnable() { public void run(){ repaint()... } });
getCurrentMillis() - prevMillis vs time to wait for fps, if > 0
@override
public void paintComponent(Graphics c)
I need more details about your while loop
Edited by: DeadlyPredator on Mar 16, 2009 8:23 AM -
Problem with transformations error RSTRAN502
the issue is i created DSO for order items in SD.
in transformations there is button called rulegroup
in that rulegroup i have standgroup and technicalgroup.
i had mapped each and every field to target field.
as it is DSO i should map orecordmode which is mandatory.
i found orecordmode file when i click technical group. mapped with rocancel of source
now when i activating it shows error RSTRAN502..
it says source parameter is not being used...i some messages we have to use note...but i dnt have access to the note...
cananyone help in this regardsHi ,
We are not allowed to expose the content of notes in the Forum.
Ask for an account on the market place, may be ask your client, it's delivred with the SAP license installation.
If you can't, try to make your transformation with an ABAP routine.
Hope it helps.
Best regards.
Amine -
Problem in transformation routine.
Hi,
I add new logic but it is not working. my understanding is if the condition ( IF <FS>-CALDAY > W_ZODPMSOB-CALDAY.) is ture then out from the loop, but when i debuge the code it is come on the loop and jump out from the loop it is not going to check the condition eventhough <FS>-CALDAY is less than the W_ZODPMSOB-CALDAY.
please help me to fix this problem.
Thanks
FORM apply_resettlement TABLES w_zodpmsob LIKE it_result.
DATA : lv_tabix TYPE sy-tabix, rec_found(1).
READ TABLE w_zodpmsob
WITH KEY ba_objnrt = <fs>-ba_objnrt
BINARY SEARCH.
lv_tabix = SY-TABIX + 1.
lOOP.
IF <FS>-CALDAY > W_ZODPMSOB-CALDAY.
EXIT.
CLEAR: lv_tabix.
READ TABLE w_zodpmsob
WITH KEY ba_objnrt = <fs>-ba_objnrt
BINARY SEARCH.
lv_tabix = SY-TABIX + 1.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ENDIF.
ENDLOOP.
<fs>-/bic/zamount_c = <fs>-amount * w_zodpmsob-/bic/zper_cap.
<fs>-/bic/zamount_o = <fs>-amount * w_zodpmsob-/bic/zper_oper.
<fs>-/bic/zamount_r = <fs>-amount * w_zodpmsob-/bic/zper_rec.
<fs>-/bic/zamount_u = <fs>-amount * w_zodpmsob-/bic/zper_und.
<fs>-/bic/zper_cap = w_zodpmsob-/bic/zper_cap.
w_recno = w_recno + 1.
<fs>-recno = w_recno.
ENDFORM. "APPLY_RESETTLEMENTHi Pria,
First of all, do not worry. This is a easy fix.
Can you please let me know what is the purpose you want the code? It is quite not clear with this piece of code as in this code we are just increasing the sy-tabix by 1 if the condition meet and do not meet.
In your code, I can see that some statements are not required.
***lOOP.
IF <FS>-CALDAY > W_ZODPMSOB-CALDAY.
*** EXIT.
CLEAR: lv_tabix.
READ TABLE w_zodpmsob
WITH KEY ba_objnrt = <fs>-ba_objnrt
BINARY SEARCH.
lv_tabix = SY-TABIX + 1.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ENDIF.
*** ENDLOOP.
I have added *** on the statements that are not required this applies for WHILE statement too. You ideally only need IF statement. But still it is not clear the purpose of your code. I do not see any modifications to the data etc.
Can you please paste your complete code of endroutine and tell the purpose of your code?
Regards
Amit -
Problem with CAPI routines get_date|num|char_value
Hi CDM Ruleframe users,
I created the following testscript
(table a (id number,begindate date))
begindate is initial 01-01-2000 for id=1
1) update table a set begindate= sysdate
2) rollback.
3) app_a_capi.get_date_value
In the debug monitor i log the data value this routine returns. This routine returns the new value of the date value (sysdate) instead of the old one(01-01-2000)!
Is this because the built-in cache of the CAPI is not working properly?
We are using CDM Ruleframe with CAPI generator v 6.0.2.1.
Kind regards,
Jan-Derk Weitering
nullJan-Derk,
It is technically not possible to rollback the CAPI cache (stored in package variables) just by issueing a database rollback command. There is no ON ROLLBACK database trigger to catch the event.
If you want to do a rollback in a CDM RuleFrame environment, you should always call qms_transaction_mgt.abort_transaction instead. This combines rollback with clean up of transaction management, clears all business rules from the rule stacks and clears all messages from the cg$errors message stack.
After this, it is possible that the CAPI cache still contains the wrong value, but no business rule code will look at it because there is no open transaction anymore. When a new DML action is performed, the CAPI cache is cleared (with each DML action, the CAPI compares the current transaction id to the previous transaction id).
I hope this explains it,
regards,
Sandra -
Hello!
I have written an XSLT-Transformation-Script that works fine in my XML editor.
When I transform a XML-file with the javax.xml.transform.Transformer I get a different output.
All generated Elements, that schould have text and values in it, are empty.
Here an example of my code:
<error>
<name/>
<id/>
<element>ref_section</element>
<parent>model</parent>
<errormessage>Refenenced section <xsl:value-of select="$ref"/> does not exist.</errormessage>
</error>
Example of the resulting XML-file:
<error>
<name/>
<id/>
<element>ref_section</element>
<parent>model</parent>
<errormessage>Refenenced section 4711 does not exist.</errormessage>
</error>
The same element generated by the Java-Transform-Class:
<error>
<name>
</name>
<id>
</id>
<element>
ref_section
</element>
<parent>
model
</parent>
<errormessage>
</errormessage>
</error>
Thanx for help.Looks like your code is doing a default XSL transformation and not applying your XSL. There must be something wrong with your code.
Posting your code might lead to a more helpful answer. -
Found a problem with transforming Clip Groups
When you select a Clip Group in CS6, the "Edit Clipping Path" button is automatically highlighted in the Control Panel. However, if you accept that and try to transform a Clip Group's Clipping Path, the contents get transformed too. If you click on the "Edit Clipping Path" button again, it still happens. The only way around it is to click the "Edit Contents" button and then click the "Edit Clipping Path" again. Just saying.
I'm also having this problem. It used to be in CS5, if you just clicked the "edit clipping path" button (never mind that it is selected by default!!) that would work.
But now, in CS6, yes, you have to click "edit contents" and then "edit clipping path" again.
Adobe, this seems like a bug. Can you fix it?
I use clipping paths constantly and this is slowing me down. -
BW Procedure System Copy - Problemas with transformations and DTP
Hello,
My Administration system have done a BW production copy to a BW non-productive system. After that, I have created a transport order in BW production with the option "with the source-system-dependent objects". Before I transport this order to BW non-productive system, I have deleted, in this system, the ancient source-system assignment.
When I have transported the order to BW non-productive system, the system I created transformation an DTP with another ID. I was expected that the ID was the same and not another one. Is this normal? What will happen when i tranport the changes form BW non-productive system to BW productive system?
Best regards.
Sérgio PintoHello Raghavendra,
But the BDLS report is not only for changing the logical name of the BW system? Is it possible to use this program in BW for changing the logical name of the source system than is assigned to the datasources?
By changing ID I want to say that the DTP with the ID DTP_4EC3YB6B6DT0OIH1TMBB0F5VG is change to the ID DTP_4K1H1XZ38M1CLVJ2IA8KFDQYY in BW no-productive system, after transport from productive to non-productive system.
Best regards.
Sérgio Pinto
Maybe you are looking for
-
Creating a manual tabular form on an empty table
Hi all, I am trying to create a manual tabular form on an empty table. Is it possible to display textboxes and column headers, when I run the report I get "no data found". Regards,
-
HT2534 payment type none doesnt appear on the screen
guys help me out
-
Trial Balance : monthwise
Hi expers, My users wants to get F.01 monthwise.In F.01,if run period 2,i will get gl balances from Apr10 to May10.User wants only trial balance for Apr10,May10 like.Is there any standard functionality report. Please advise. Regards, Samaar
-
OS 10.4.3, BlackMagic DeckLink Extreme and Motion 2.1 filter creshes
Any update on what Apple or BlackMagic Design is doing about this issue? Is there a site that gives update information about what is going on, or when we will have a solution? Clemente
-
Processing data packet (no data)
Hi all, My issue is: I am trying to load data utilizing a custom datasource and a custom function module. When the job loads it runs successfully but no records are pulled over. However, I get records using the extractor checkor in the source syste