Function Call in mapping
I have function call in some of my mappings. This call is for each record in the table. Because of this function call my mapping takes for ever to execute. Sometimes it does not come back at all it times out. This function returns text for each code. It concatenates text from a table for each code that is passed and returns one string. I have indexes created and have the table analyzed. I am not sure how to improve the performance. I have to have this function call. Can anybody suggest better solution.
Thanks
Hi
Because of the lack of info I'll be as general as I can.
Most functions running inside a mapping are working on a single row at a time, and assuming that your function is looking up details in another table before concatenating them, you can reasonably expect the function to be run once for every row in you source table. So take on the size of your source table, (count the records), multiply it by the size of your lookup table, and the time that takes to transverse it. It doesn't take long to realise the larger the tables the longer the wait.
You can however do many things to remedy this.
1. Make sure you use indexes on your lookup tables.
2. Select a small data set to lookup from.
3. When making multiple joins, link smallest to largest.
4. If possible link using numeric or binary indexes.
5. I possible create a smaller lookup data set (staging table) or do any major joins in an earlier mapping.
There are many more, and I'm sorry if I appear to be stating the obvious.
Chris
Similar Messages
-
Calling user function from Interface mapping
I am getting error "Bad query:ORA-00904: invalid identifier" while calling function in the mapping of an interface.
Can some one provide the syntax of calling user function from interface mapping.
Thanks,
RPuser452108 wrote:
Can some one provide the syntax of calling user function from interface mapping.Oracle's Call Iinterface, the OCI, does not work differently when coding using a Dvorak keyboard, or writing code using a pretty pink font in the editor.. or coding the call from an interface mapping (whatever the hell that that is).
You have 2 types of calls. SQL and PL/SQL.
To call a function via SQL, it can be done using a the standard cursor interface. E.g.
select MyFunkyFunction from dualIt will return the function value via a single row with a single column. The standard cursor fetch and close cursor calls are used.
To call it via PL/SQL, an anonymous PL/SQL block is needed, and the caller needs to use a bind variable to receive the value from the function. The anon block will look as follows:
begin
:bindVar := MyFunkyFunction;
end;Refer to your client's abstract layer for interfacing with the Oracle Call Interface, on how to deal with bind variables. -
Hey everyone
Im trying to understand if im missing out on something or just misunderstanding things.
i've created an entity, and a function.
calling this entity using standard key filter works (i.e /FlightSet(0001), but when using /FlightSet?$filter=carried eq '0001' I simply get all the entities in the collection, no error or anything.
I've marked the key as "filterable" in the collection.
i've also taken a look at the class generated by the transaction, it doesnt seem as if the method contains code that is supposed to filter the results, it simply reads the keys and announces errors.
i have no problem implementing this manually, but i dont know if its a correct behavior.
thanks.
EliHi Chandrashekhar Mahajan
i want to fetch the data from below url but its give me.In domain name there is a Slash('\') how to resolve this kindly help.
Exception during error handling occured!
http://192.168.59.227:8080/gateway/odata/sap/EmployeeDataList;v=1/Employee?$filter=DomainAndUsername+eq+'injazat\maheshware\reddy'
Below link is working fine.
http://192.168.59.227:8080/gateway/odata/sap/EmployeeDataList;v=1/Employee?$filter=FullName+eq+'Maheshwar Reddy'
Regards
Ali -
Java.lang.VerifyError - Incompatible object argument for function call
Hi all,
I'm developing a JSP application (powered by Tomcat 4.0.1 in JDK 1.3, in Eclipse 3.3). Among other stuff I have 3 classes interacting with an Oracle database, covering 3 use cases - renaming, adding and deleting an database object. The renaming class simply updates the database with a String variable it receives from the request object, whereas the other two classes perform some calculations with the request data and update the database accordingly.
When the adding or deleting classes are executed, by performing the appropriate actions through the web application, Tomcat throws the following:
java.lang.VerifyError: (class: action/GliederungNewAction, method: insertNewNode signature: (Loracle/jdbc/driver/OracleConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V) Incompatible object argument for function call
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at action.ActionMapping.perform(ActionMapping.java:53)
at ControllerServlet.doResponse(ControllerServlet.java:92)
at ControllerServlet.doPost(ControllerServlet.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
...The renaming works fine though. I have checked mailing lists and forums as well as contacted the company's java support but everything I have tried out so far, from exchanging the xerces.jar files found in JDOM and Tomcat to rebuidling the project didn't help.
I just can't explain to myself why this error occurs and I don't see how some additional Java code in the other 2 classes could cause it?
I realize that the Tomcat and JDK versions I'm using are totally out of date, but that's company's current standard and I can't really change that.
Here's the source code. I moved parts of the business logic from Java to Oracle recently but I left the SQL statements that the Oracle stored procedures are executing if it helps someone.
package action;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import oracle.jdbc.driver.OracleConnection;
* This class enables the creation and insertion of a new catalogue node. A new node
* is always inserted as the last child of the selected parent node.
public class GliederungNewAction implements Action {
public String perform(ActionMapping mapping, HttpServletRequest request,
HttpServletResponse response) {
// fetch the necessary parameters from the JSP site
// the parent attribute is the selected attribute!
String parent_attribute = request.getParameter("attr");
String catalogue = request.getParameter("catalogue");
int parent_sequenceNr = Integer.parseInt(request.getParameter("sort_sequence"));
// connect to database
HttpSession session = request.getSession();
db.SessionConnection sessConn = (db.SessionConnection) session.getAttribute("connection");
if (sessConn != null) {
try {
sessConn.setAutoCommit(false);
OracleConnection connection = (OracleConnection)sessConn.getConnection();
int lastPosition = getLastNodePosition( getLastChildAttribute(connection, catalogue, parent_attribute) );
String newNodeAttribute = createNewNodeAttribute(parent_attribute, lastPosition);
// calculate the sequence number
int precedingSequenceNumber = getPrecedingSequenceNumber(connection, catalogue, parent_attribute);
if ( precedingSequenceNumber == -1 ) {
precedingSequenceNumber = parent_sequenceNr;
int sortSequence = precedingSequenceNumber + 1;
setSequenceNumbers(connection, catalogue, sortSequence);
// insert the new node into DB
insertNewNode(connection, catalogue, newNodeAttribute, parent_attribute, "Neuer Punkt", sortSequence);
connection.commit();
} catch(SQLException ex) {
ex.printStackTrace();
return mapping.getForward();
* Creates, fills and executes a prepared statement to insert a new entry into the specified table, representing
* a new node in the catalogue.
private void insertNewNode(OracleConnection connection, String catalogue, String attribute, String parent_attribute, String description, int sortSequence) {
try {
String callAddNode = "{ call fasi_lob.pack_gliederung.addNode(:1, :2, :3, :4, :5) }";
CallableStatement cst;
cst = connection.prepareCall(callAddNode);
cst.setString(1, catalogue);
cst.setString(2, attribute);
cst.setString(3, parent_attribute);
cst.setString(4, description);
cst.setInt(5, sortSequence);
cst.execute();
cst.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
// String insertNewNode = "INSERT INTO vstd_media_cat_attributes " +
// "(catalogue, attribute, parent_attr, description, sort_sequence) VALUES(:1, :2, :3, :4, :5)";
// PreparedStatement insertStmt;
// try {
// insertStmt = connection.prepareStatement(insertNewNode);
// insertStmt.setString(1, catalogue);
// insertStmt.setString(2, attribute);
// insertStmt.setString(3, parent_attribute);
// insertStmt.setString(4, description);
// insertStmt.setInt(5, sortSequence);
// insertStmt.execute();
// insertStmt.close();
// } catch (SQLException e) {
// e.printStackTrace();
* This method returns the attribute value of the last child of the parent under which
* we want to insert a new node. The result set is sorted in descending order and only the
* first result (that is, the last child under this parent) is fetched.
* If the parent node has no children, "parent_attr.0" is returned.
* @param connection
* @param catalogue
* @param parent_attribute
* @return attribute of the last child under this parent, or "parent_attr.0" if parent has no children
private String getLastChildAttribute(OracleConnection connection, String catalogue, String parent_attribute) {
String queryLastChild = "SELECT attribute FROM vstd_media_cat_attributes " +
"WHERE catalogue=:1 AND parent_attr=:2 ORDER BY sort_sequence DESC";
String lastChildAttribute;
PreparedStatement ps;
try {
ps = connection.prepareStatement(queryLastChild);
ps.setString(1, catalogue);
ps.setString(2, parent_attribute);
ResultSet rs = ps.executeQuery();
/* If a result is returned, the selected parent already has children.
* If not set the lastChildAttribute to parent_attr.0
if (rs.next()) {
lastChildAttribute = rs.getString("attribute");
} else {
lastChildAttribute = parent_attribute.concat(".0");
rs.close();
return lastChildAttribute;
} catch (SQLException e) {
e.printStackTrace();
return null;
* This helper method determines the position of the last node in the attribute.
* i.e for 3.5.2 it returns 2, for 2.1 it returns 1 etc.
* @param attribute
* @return position of last node in this attribute
private int getLastNodePosition(String attribute) {
StringTokenizer tokenizer = new StringTokenizer(attribute, ".");
String lastNodePosition = "0";
while( tokenizer.hasMoreTokens() ) {
lastNodePosition = tokenizer.nextToken();
return Integer.parseInt(lastNodePosition);
* This method calculates the attribute of a node being inserted
* by incrementing the last child position by 1 and attaching the
* incremented position to the parent.
* @param parent_attr
* @param lastPosition
* @return attribute of the new node
private String createNewNodeAttribute(String parent_attr, int lastPosition) {
String newPosition = new Integer(lastPosition + 1).toString();
return parent_attr.concat("." + newPosition);
* This method checks if the required sequence number for a new node is already in use and
* handles the sequence numbers accordingly.
* If the sequence number for a new node is NOT IN USE, the method doesn't do anything.
* If the sequence number for a new node is IN USE, the method searches for the next free
* sequence number by incrementing the number by one and repeating the query until no result
* is found. Then all the sequence numbers between the required number (including, >= relation)
* and the nearest found free number (not including, < relation) are incremented by 1, as to
* make space for the new node.
* @param connection
* @param catalogue
* @param newNodeSequenceNumber required sequence number for the new node
private void setSequenceNumbers(OracleConnection connection, String catalogue, int newNodeSequenceNumber) {
// 1. check if the new sequence number exists - if no do nothing
// if yes - increment by one and see if exists
// repeat until free sequence number exists
// when found increment all sequence numbers freeSeqNr > seqNr >= newSeqNr
String query = "SELECT sort_sequence FROM vstd_media_cat_attributes " +
"WHERE catalogue=:1 AND sort_sequence=:2";
PreparedStatement ps;
try {
ps = connection.prepareStatement(query);
ps.setString(1, catalogue);
ps.setInt(2, newNodeSequenceNumber);
ResultSet rs = ps.executeQuery();
// if no result, the required sequence number is free - nothing to do
if( rs.next() ) {
int freeSequenceNumber = newNodeSequenceNumber;
do {
ps.setString(1, catalogue);
ps.setInt(2, freeSequenceNumber++);
rs = ps.executeQuery();
} while( rs.next() );
// increment sequence numbers - call stored procedure
String callUpdateSeqeunceNrs = "{ call fasi_lob.pack_gliederung.updateSeqNumbers(:1, :2, :3) }";
CallableStatement cst = connection.prepareCall(callUpdateSeqeunceNrs);
cst.setString(1, catalogue);
cst.setInt(2, newNodeSequenceNumber);
cst.setInt(3, freeSequenceNumber);
cst.execute();
cst.close();
// String query2 = "UPDATE vstd_media_cat_attributes " +
// "SET sort_sequence = (sort_sequence + 1 ) " +
// "WHERE catalogue=:1 sort_sequnce >=:2 AND sort_sequence <:3";
// PreparedStatement ps2;
// ps2 = connection.prepareStatement(query2);
// ps2.setString(1, catalogue);
// ps2.setInt(2, newNodeSequenceNumber);
// ps2.setInt(3, freeSequenceNumber);
// ps.executeUpdate();
// ps.close();
} // end of if block
rs.close();
} catch (SQLException e) {
e.printStackTrace();
* This method finds the last sequence number preceding the sequence number of a node
* that is going to be inserted. The preceding sequence number is required to calculate
* the sequence number of the new node.
* We perform a hierarchical query starting from the parent node: if a result is returned,
* we assign the parent's farthest descendant's node sequence number; if no result
* is returned, we assign the parent's sequence number.
* @param connection
* @param catalogue
* @param parent_attr parent attribute of the new node
* @return
private int getPrecedingSequenceNumber(OracleConnection connection, String catalogue, String parent_attr) {
int sequenceNumber = 0;
String query = "SELECT sort_sequence FROM vstd_media_cat_attributes " +
"WHERE catalogue=:1 " +
"CONNECT BY PRIOR attribute = parent_attr START WITH parent_attr=:2 " +
"ORDER BY sort_sequence DESC";
try {
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, catalogue);
ps.setString(2, parent_attr);
ResultSet rs = ps.executeQuery();
if ( rs.next() ) {
sequenceNumber = rs.getInt("sort_sequence");
} else {
// TODO: ggf fetch from request!
sequenceNumber = -1;
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
return sequenceNumber;
}After further googling I figured out what was causing the problem: in eclipse I was referring to external libraries located in eclipse/plugins directory, whereas Tomcat was referring to the same libraries (possibly older versions) in it's common/lib directory.
-
How to call Java Map in XSLT map
Hello,
Can anyone tell me how to call Java Map in XSLT map.
Thanks and Regards
HemantHello, Vijay,
Can you help in understanding how can we pass whole payload in the parameter in XSLT map.....
for eg
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:javamap="java:DATEandTIME.Date_Time">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="inputparam" />
<xsl:template match="/">
<MT_TARGET>
<date>
<xsl:if test="function-available('javamap:getDateValue')">
<xsl:value-of select="javamap:getDateValue($inputparam)"/> </xsl:if>
</date>
<time>
<xsl:if test="function-available('javamap:getTimeValue')">
<xsl:value-of select="javamap:getTimeValue($inputparam)"/> <xsl:value-of select="$test"/>
</xsl:if>
</time>
<project>
<xsl:value-of select= "//project"/>
</project>
</MT_TARGET>
</xsl:template>
</xsl:stylesheet>
here we are passing static value in parameter.....
Java code is:
private static AbstractTrace trace = null;
public static String getDateValue(Map inputparam)
trace = (AbstractTrace)inputparam.get(
StreamTransformationConstants.MAPPING_TRACE );
Date now1 = new Date();
SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMd");
String dateString = formatter.format(now1);
return dateString;
public static String getTimeValue(Map inputparam)
trace = (AbstractTrace)inputparam.get(
StreamTransformationConstants.MAPPING_TRACE );
Date now1 = new Date();
SimpleDateFormat formatter = new SimpleDateFormat ("hhmmss");
String dateString1 = formatter.format(now1);
return dateString1;
I want to pass whole payload so how can i pass it. -
What are the Built-In-Functions in XSLT mapping?
what are the Built-In-Functions in XSLT mapping?
hi praveen
check the below blogs
XSLT MAPPING
Step u2013 By u2013 Step Simple Approach for XSLT Mapping
Step By Step Simple Approach for XSLT Mapping
XSLT mapping for multiple segments of XML
XSLT mapping for multiple segments of XML
IF - ELSE IF and XSLT - A Better work around ?
IF - ELSE IF and XSLT - A Better work around ?
Calling instance (object) method of ABAP Class into xslt mapping by using SAP: CALL-EXTERNAL
Calling instance (object) method of ABAP Class into xslt mapping by using SAP: CALL-EXTERNAL
xpath functions in xslt mapping
xpath functions in xslt mapping
Using XSLT Mapping within the J2EE Adapter Framework
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3823 [original link is broken] [original link is broken] [original link is broken]
EDIFACT to XML - Stylus Studio Solution
EDIFACT to XML - Stylus Studio Solution
Running NetWeaver's XSLT processor from XMLSpy
Running NetWeaver's XSLT processor from XMLSpy
generic xslt mapping part 1
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
generic xslt mapping part 1 part2
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a
xslt recursive templates
XSLT: Recursive Templates
Generating Generic XML / HTML files without using XSLT Mappings
Generating Generic XML / HTML files without using XSLT Mappings
regards
kummari -
Hi Folks,
please, i need a step by step Solution for calling Value Mapping with XSLT Mapping Program.
best regards MichaelXSLT call Value Mapping
Maintain the value mapping using the option available in the Integration directory. The following values should be entered for maintaining the value mapping. In the XSLT Mapping use the Java function Valuemappingaccessor to read the values from the table.
Class ValueMappingAccessor
This class is used read the Value mapping stored in the Integration server (Java Cache). Class has a method getValueMapping. The Class is imported into the SWC Eyyy_xxxx under namespace http://xxx.ash.com/COMMON/Common
Method public static String getValueMapping(String srcContext, String dstContext, String srcAgency, String srcSchema, String dstAgency, String dstSchema, String key, Map inputParam, String throwException)
Paramters Description
srcContext Source context in the Integration server (Java Cache) under which, the value is stored.
For example, if the source values are stored using standard Value mapping table in the ID, then use source context as http://sap.com/xi/XI
dstContext Destination context in the Integration server (Java Cache) under which the value is stored
For example, if the source values are stored using standard Value mapping table in the ID, then Target context as http://sap.com/xi/XI
srcAgency Source Agency, a unique identifying value, value to be used is not yet decided.
srcSchema Source Schema, For example this can be source field name
key Source field value, that is required to determine the target, In the figure 1 shown below, We need to send IN to get India
dstAgency Destination Agency, a unique identifying value, value to be used is not yet decided
dstSchema Destination Schema, For example this can be target field name
inputParam Mapping transformation constants, to write the trace into the header of the message
throwException An indicator to throw an exception, if the value is not found in the cache. If the parameter is set to true or TRUE, an exception is raised & message fails in the mapping step of the Pipe line.
Returns the value, that is stored in the Value mapping context for the given parameters
If the value mapping is maintained using Integration Directory value mapping, then we need to call the value mapping function as follows
If it has to be called using XSLT Mapping., then the sample code shows how to use the java class the java class ValueMappingAccessor.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.ashok.com/idoctofile/employee" xmlns:ValueMap="java:com.xxx.yyy.ValueMappingAccessor">
<xsl:param name="CountryCode">
<xsl:value-of select="ns0:MT_EMPDETAILS/Country"/>
</xsl:param>
<xsl:param name="inputparam"/>
<xsl:template match="/">
<ns0:MT_EMPADDRESS xmlns:ns0="http://www.ashok.com/idoctofile/employee">
<EmployeeNo>
<xsl:value-of select="ns0:MT_EMPDETAILS/EmployeeNo"/>
</EmployeeNo>
<FirstName>
<xsl:value-of select="ns0:MT_EMPDETAILS/FirstName"/>
</FirstName>
<LastName>
<xsl:value-of select="ns0:MT_EMPDETAILS/LastName"/>
</LastName>
<Address1>
<xsl:value-of select="ns0:MT_EMPDETAILS/AddressLine1"/>
</Address1>
<Address2>
<xsl:value-of select="ns0:MT_EMPDETAILS/AddressLine2"/>
</Address2>
<City>
<xsl:value-of select="ns0:MT_EMPDETAILS/City"/>
</City>
<State>
<xsl:value-of select="ns0:MT_EMPDETAILS/State"/>
</State>
<Country>
<xsl:if test="function-available('ValueMap:getValueMapping')">
<xsl:value-of select="ValueMap:getValueMapping('http://sap.com/XI/xi', 'http://sap.com/XI/xi', 'Canonical','Country', 'KCRS', 'Country', $CountryCode, $inputparam, 'TRUE')"/>
</xsl:if>
</Country>
<ZipCode>
<xsl:value-of select="ns0:MT_EMPDETAILS/Zipcode"/>
</ZipCode>
</ns0:MT_EMPADDRESS>
</xsl:template>
</xsl:stylesheet>
If the values are maintained using Value mapping replication technique
Edited by: Ashok Reddy Thatigutla on Feb 15, 2008 9:43 AM
Edited by: Ashok Reddy Thatigutla on Feb 15, 2008 9:44 AM
Edited by: Ashok Reddy Thatigutla on Feb 15, 2008 10:06 AM -
Hi All,
I am getting error while executing oDATA service from SAP Netweaver Gateway
Error details:
RFC call ended with "Communication Failure" exception (Function call failed; could not find the function
I am using SAP NG 740
Project is created in Gateway system using SEGW having Map to Datasource option used.
in SPRO manage alias, I had seleted Local App option. Screen attached
I had tried all troubleshooting like delete and add service and alias in "/IWFND_MAINT_SERVICE".
but still getting same error for all service.
Kindly advise.
Regards
VivekHello Vivek,
Service builder would have also generated code for RFC Exception handling to catch exceptions raised when communication fails between your GW and BE for some reasons.
Handling is done for 1. System Failure 2. Communication Failure & 3. Business Failure;
Put a BP in your DPC or DP_EXT class where exception code is written to check what exactly is has caused communication failure.
Check if that RFC is existing in that destination or not.
For your reference : Code would be something like this. Put BP here and check the problem.
* Error and exception handling
IF lv_subrc <> 0.
* Execute the RFC exception handling process
me->/iwbep/if_sb_dpc_comm_services~rfc_exception_handling(
EXPORTING
iv_subrc = lv_subrc
iv_exp_message_text = lv_exc_msg ).
ENDIF.
Go inside this method and check to get info on what has to be done to resolve issue.
Check carefully what has gone wrong and fix it accordingly.
No need of adding service & deleting as problem is not because of that.
Regards,
Ashwin -
BPM Idoc collection without calling the mapping in BPM
Hi Expert,
I have an IDOC to file scenario in which source side I have to collect multiple IDOC and map it to a single file .I am achieving it through BPM . at present I am using one multimapping and calling this mapping in the BPM under transformation step its working fine but due to some constraint , Now I want to achieve it using BPM but without calling the Mapping in the BPM i.e I don't want to use Transformation step in the BPM. Is it possible ????
Regards,
SaurabhHi Saurabh,
If that is the case it is preferable to collect the IDocs in ECC and then send them to XI at one go.
Cheers !
Lokesh -
Revision: 3045
Author: [email protected]
Date: 2008-08-29 10:59:25 -0700 (Fri, 29 Aug 2008)
Log Message:
Fix FB-13900: Expression Evaluator: 'is' and 'as' expressions return 'Target player does not support function calls'
Ticket Links:
http://bugs.adobe.com/jira/browse/FB-13900
Modified Paths:
flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/BinaryOp.java
flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.javaRevision: 3045
Author: [email protected]
Date: 2008-08-29 10:59:25 -0700 (Fri, 29 Aug 2008)
Log Message:
Fix FB-13900: Expression Evaluator: 'is' and 'as' expressions return 'Target player does not support function calls'
Ticket Links:
http://bugs.adobe.com/jira/browse/FB-13900
Modified Paths:
flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/BinaryOp.java
flex/sdk/trunk/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java -
How do I use the "What's Here" function in Google Maps on my Mac?
Being a new convert to Mac I was used to using right-click to access the "What's Here?" function in Google Maps on my old Windows PC. How do I use it on the Mac?
Click on the Up Next icon (ringed in my screenshot):
then on the Clear button:
and Hey presto! -
How to call a C function calling a Java Method from another C function ?
Hi everyone,
I'm just starting to learn JNI and my problem is that I don't know if it is possible to call a C function calling a Java Method (or doing anything else with JNI) from another C function.
In fact, after receiving datas in a socket made by a C function, I would like to create a class instance (and I don't know how to do it too ; ) ) and init this instance with the strings I received in the socket.
Is all that possible ?
Thank you very much for your help !Hard to understand the question, but by most interpretations the answer is going to be yes.
You do of course understand that JNI is the "API" that sits between Java and C and that every call between the two must go through that. You can't call it directly. -
Is it possible to get the caller object in a function call hierarchy ?
Hi,
I have a problem in hand for adding a new functionality to an existing code with MINIMAL code change. For this I need to get some extra information in a function call from its caller. And for this I do not want to change the signature of the method, as it requires a lot of code change. So I need to have a programming facility by which I can get the object from which the function was invoked. Some thing like "{code}this.CALLEROBJECT{code}".
Please let me know whether we can achieve this in JAVA. I wonder if such a facility exists in any programming language...
Thanks in advance.
Regards
JobyNo.
Youd have to buy it Germany or see if an Apple Authrorized reseller in Singapore could order you the keyboard. -
I am experiencing this error with one of our cluster environment. Can anyone help me in this issue.
The Cluster Service function call 'ClusterResourceControl' failed with error code '1008(An attempt was made to reference a token that does not exist.)' while verifying the file path. Verify that your failover cluster is configured properly.
Thanks,
Venu S.
Venugopal S ----------------------------------------------------------- Please click the Mark as Answer button if a post solves your problem!Hi Venu S,
Based on my research, you might encounter a known issue, please try the hotfix in this KB:
http://support.microsoft.com/kb/928385
Meanwhile since there is less information about this issue, before further investigation, please provide us the following information:
The version of Windows Server you are using
The result of SELECT @@VERSION
The scenario when you get this error
If anything is unclear, please let me know.
Regards,
Tom Li -
Is there a way to avoid the function call ?
Given the following test case
CREATE USER TESTER
IDENTIFIED BY "tester"
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
GRANT CONNECT, RESOURCE TO TESTER
GRANT CREATE TYPE TO TESTER
GRANT CREATE SESSION TO TESTER
GRANT CREATE PROCEDURE TO TESTER
GRANT CREATE TABLE TO TESTER
GRANT UNLIMITED TABLESPACE TO TESTER
ALTER USER TESTER QUOTA UNLIMITED ON USERS
COMMIT
CONNECT TESTER/tester
CREATE OR REPLACE TYPE TESTER.PATTERN_LIST AS TABLE OF VARCHAR2(1023 CHAR)
SHOW ERRORS
CREATE TABLE TESTER.PARENT_TABLE
FIELD_ID NUMBER(10) NOT NULL,
FIELD_NAME VARCHAR2( 255 CHAR) NOT NULL,
FIELD_PATH VARCHAR2(1023 CHAR) NOT NULL,
FIELD_VALUE VARCHAR2( 255 CHAR)
CREATE TABLE TESTER.CHILD_TABLE
FIELD_PATH VARCHAR2(1023 CHAR) NOT NULL,
MIN_STR_LEN NUMBER(10),
MAX_STR_LEN NUMBER(10),
PATTERNS TESTER.PATTERN_LIST
NESTED TABLE PATTERNS STORE AS PATTERN_TABLE RETURN AS VALUE
ALTER TABLE TESTER.PARENT_TABLE ADD (
CONSTRAINT PARENT_TABLE_PK
PRIMARY KEY
(FIELD_ID))
INSERT ALL
INTO TESTER.PARENT_TABLE
VALUES (1, 'FIELD_A', '/A', NULL)
INTO TESTER.PARENT_TABLE
VALUES (2, 'FIELD_AB', '/A/B', '20090731')
INTO TESTER.PARENT_TABLE
VALUES (3, 'FIELD_AC', '/A/C', '2167')
INTO TESTER.PARENT_TABLE
VALUES (4, 'FIELD_AC', '/A/C', '1144')
INTO TESTER.PARENT_TABLE
VALUES (5, 'FIELD_AD', '/A/D', 'XS10')
INTO TESTER.PARENT_TABLE
VALUES (6, 'FIELD_AB', '/A/B', '20090229')
INTO TESTER.PARENT_TABLE
VALUES (7, 'FIELD_AD', '/A/D', 'ART')
INTO TESTER.PARENT_TABLE
VALUES (8, 'FIELD_AD', '/A/D', 'TESTED')
INTO TESTER.CHILD_TABLE
VALUES ('/A', NULL, NULL, PATTERN_LIST())
INTO TESTER.CHILD_TABLE
VALUES ('/A/B', NULL, NULL, PATTERN_LIST( '[12][0-9]{3}[0][13578]([0][1-9]|[12][0-9]|[3][01])'
, '[12][0-9]{3}[0][469]([0][1-9]|[12][0-9]|[3][0])'
, '[12][0-9]{3}[1][02][3][1]'
, '[12][0-9]{3}[1][1][3][0]'
, '[12][0-9]{3}[0][2][2][8]'
, '([2][048]|[1][26])([02468][048]|[13579][26])[0][2][2][9]'))
INTO TESTER.CHILD_TABLE
VALUES ('/A/C', NULL, NULL, PATTERN_LIST( '[0-1][0-9][0-5][0-9]'
, '[2][0-3][0-5][0-9]'))
INTO TESTER.CHILD_TABLE
VALUES ('/A/D', 3, 4, PATTERN_LIST('[^0-9]*'))
SELECT * FROM DUAL
CREATE OR REPLACE FUNCTION TESTER.MATCH_PATTERN(p_value IN VARCHAR2, p_patterns IN TESTER.PATTERN_LIST) RETURN NUMBER
AS
v_count NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_count
FROM TABLE(p_patterns)
WHERE REGEXP_SUBSTR(p_value, COLUMN_VALUE) = p_value;
RETURN v_count;
END MATCH_PATTERN;
SHOW ERRORS
COMMIT
/the query
SELECT FIELD_ID
, FIELD_PATH
, ERRINDEX
, FIELD_VALUE
FROM (
SELECT a.FIELD_ID
, a.FIELD_PATH
, b.PATTERNS
, CASE
WHEN ((b.MIN_STR_LEN IS NOT NULL) AND ((a.FIELD_VALUE IS NULL) OR (LENGTH(a.FIELD_VALUE) < b.MIN_STR_LEN))) THEN 1
END AS ERRINDEX_1
, CASE
WHEN ((b.MAX_STR_LEN IS NOT NULL) AND ((a.FIELD_VALUE IS NULL) OR (LENGTH(a.FIELD_VALUE) > b.MAX_STR_LEN))) THEN 2
END AS ERRINDEX_2
, CASE
WHEN ((b.PATTERNS IS NOT EMPTY) AND ((SELECT COUNT(*) FROM TABLE(b.PATTERNS) WHERE REGEXP_SUBSTR(a.FIELD_VALUE, COLUMN_VALUE) = a.FIELD_VALUE) = 0)) THEN 4
END AS ERRINDEX_4
, a.FIELD_VALUE
FROM TESTER.PARENT_TABLE a
INNER JOIN TESTER.CHILD_TABLE b ON a.FIELD_PATH = b.FIELD_PATH
UNPIVOT
ERRINDEX
FOR COL IN (ERRINDEX_1, ERRINDEX_2, ERRINDEX_4)
)gives me ORA-03113: end-of-file on communication channel
If on the other hand, I replace the nested single-row SELECT with the function call like this
SELECT FIELD_ID
, FIELD_PATH
, ERRINDEX
, FIELD_VALUE
FROM (
SELECT a.FIELD_ID
, a.FIELD_PATH
, b.PATTERNS
, CASE
WHEN ((b.MIN_STR_LEN IS NOT NULL) AND ((a.FIELD_VALUE IS NULL) OR (LENGTH(a.FIELD_VALUE) < b.MIN_STR_LEN))) THEN 1
END AS ERRINDEX_1
, CASE
WHEN ((b.MAX_STR_LEN IS NOT NULL) AND ((a.FIELD_VALUE IS NULL) OR (LENGTH(a.FIELD_VALUE) > b.MAX_STR_LEN))) THEN 2
END AS ERRINDEX_2
, CASE
WHEN ((b.PATTERNS IS NOT EMPTY) AND (TESTER.MATCH_PATTERN(a.FIELD_VALUE, b.PATTERNS) = 0)) THEN 4
END AS ERRINDEX_4
, a.FIELD_VALUE
FROM TESTER.PARENT_TABLE a
INNER JOIN TESTER.CHILD_TABLE b ON a.FIELD_PATH = b.FIELD_PATH
UNPIVOT
ERRINDEX
FOR COL IN (ERRINDEX_1, ERRINDEX_2, ERRINDEX_4)
)the query gives the correct results which should be
FIELD_ID FIELD_PATH ERRINDEX FIELD_VALUE
6 /A/B 4 20090229
3 /A/C 4 2167
5 /A/D 4 XS10
8 /A/D 2 TESTEDIs there a way to do this without the PL/SQL function call and at the same time avoid the ORA-03113 ? Or, have I hit a bug on 11.1.0.7 ?
Many thanks in advance
Best Regards
PhilipI found the Oracle Bug on my own in the end, in the most unlikely of places !
The following code
SELECT FIELD_ID
, FIELD_PATH
, ERRINDEX
, FIELD_VALUE
FROM (
SELECT a.FIELD_ID
, a.FIELD_PATH
, CASE
WHEN ((b.MIN_STR_LEN IS NOT NULL) AND ((a.FIELD_VALUE IS NULL) OR (LENGTH(a.FIELD_VALUE) < b.MIN_STR_LEN))) THEN 1
END AS ERRINDEX_1
, CASE
WHEN ((b.MAX_STR_LEN IS NOT NULL) AND ((a.FIELD_VALUE IS NULL) OR (LENGTH(a.FIELD_VALUE) > b.MAX_STR_LEN))) THEN 2
END AS ERRINDEX_2
, CASE
WHEN ((b.PATTERNS IS NOT EMPTY) AND ((SELECT COUNT(*) FROM TABLE(b.PATTERNS) WHERE REGEXP_SUBSTR(a.FIELD_VALUE, COLUMN_VALUE) = a.FIELD_VALUE) = 0)) THEN 4
END AS ERRINDEX_4
, a.FIELD_VALUE
FROM TESTER.PARENT_TABLE a, TESTER.CHILD_TABLE b
WHERE a.FIELD_PATH = b.FIELD_PATH
UNPIVOT
ERRINDEX
FOR COL IN (ERRINDEX_1, ERRINDEX_2, ERRINDEX_4)
)works as intended i.e. like a charm !
The only difference between the one that gives the ORA-03113 and the above is the way the join is written. The ANSI way (INNER JOIN) fails, the old way (WHERE clause) succeeds.
I will open a SR with Oracle so that it may be recorded and fixed.
Best Regards
Philip
Maybe you are looking for
-
Okay, Im at a loss Virtual PC 7
Okay, so I just got my new MacBook and was really excited. I went through and started to install the usual standard applications I have on my 17" powerbook. You know the necessary evil ones from Microsoft. Well I was so excited I got office 2004 inst
-
Why do Outlook calendar invites appear on my iPod touch calendar but not my icloud calendar
Why do Outlook calendar invites appear on my iPod touch calendar but not my iCloud calendar? I use Outlook at work and if I want to add events to the calendar on my iPod Touch which I use as a PDA I simply create the event in outlook select my gmail
-
Hello i have i mac runs with mac os lion but i want to format my computer
hello i have i mac runs with mac os lion but i want to format my computer but i can't because i am using apples wireless keyboard so there is any way to format my i mac with wireless keyboard please help
-
Cannot find pet eye option in toolbar
I have been trying to fix some pet eye in PS11 - but unable to find the check box in toolbox options. All that comes up is autofix. Can someone help me.
-
hi, Newbie question here. how can i add a vlan to a fwsm module. What are the steps i should do? And also, can i directly assign the vlan i add to fwsm directly to a switchport (i.e. access switch) thanks.