HttpPost and Key-Value-Pair encoding?
Hello,
I´m requesting a service via HttpPost sending XML, but no SOAP. The service does not understand the request I am sending, although the xml I create is such a
document, that the service expects to get.
I analysed the sended request with TCPMon and found that the content of the Post-message seems to be KVP-encoded. I cannot explain, why not only the plain xml I defined in the assign-activity is send.
I would like to send a request like this:
<GetFeature xmlns='http://www.opengis.net/wfs' xmlns:ogc='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml' service='WFS' version='1.0.0' outputFormat='GML2'>
<Query typeName='xy'>...
but it is send something like this:
Body=%3CGetFeature+xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fwfs%22+version%3D%221.0.0%22+service%3D%22WFS%22+outputFormat%3D%22GML2%22%3E%3CQuery+typeName%3D%22xy%22
The leading element "Body" is the Part in the message-element in the WSDL-file of the requested service. If this sort of key-value encoding is send via Post, I think that would be the reason
why I get an exception from the service. How can I leave the 'Body' element out and send only the xml? I don´t know where to change settings for this?
Another question is why the special characters (/, <, >, etc) in the xml are url-encoded? That might also lead to problems. I looked at other services and none of them send the request encoded like this. It was always plain text.
I had a look at the HttpBindingSample, but I can´t derive any useful information from it. The invoke and assign activities in my Workflow-Service look very similar.
I´ve got no ideas anymore and would be very thankful for every hint.
regards,
Kay
Thanks for your reply.
I looked at the WSDL of the sample but unfortunately that does not help me. I already checked it before posting here. The binding in the WSDL of the service looks like this:
<wsdl:message name="GetFeaturePOSTRequest">
<wsdl:part name="InBody" element="wfs:GetFeature"/>
</wsdl:message>
<wsdl:portType name="GetFeaturePOST">
<wsdl:operation name="GetFeaturePegelMessungPOST">
<wsdl:input message="tns:GetFeaturePOSTRequest"/>
<wsdl:output message="tns:GetFeatureResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GetFeaturePOSTBinding" type="tns:GetFeaturePOST">
<http:binding verb="POST"/>
<wsdl:operation name="GetFeaturePegelMessungPOST">
<http:operation location="/DynWFS"/>
<wsdl:input>
<mime:content type="text/xml"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
when I supstitute
<wsdl:input>
<mime:content type="text/xml"/>
</wsdl:input>
with
<wsdl:input>
<mime:mimeXml part="InBody"/>
</wsdl:input>
the execution of the process results in this binding fault:
[2005/07/12 12:11:17] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. Less
<bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="summary">Argument 'InBody' is not compatible</part>
</bindingFault>
I tried this before and did not understand the fault. So I changed the binding from <mime:mimeXml part="InBody"/> back to <mime:content type="text/xml">. But that seems to be the reason for the corious encoding in the post message, that I try to avoid.
So I woult be pleased if anyone could tell me what that fault means? With what is the argument not compatible? Is it possible to get more details about this fault?
I checked the schema and the input, and I think the input I create is valid. I also searched the documentation and did not find any hints regarding this error message.
Any ideas of how to fix this?
regards,
Kay
Similar Messages
-
How to combine large number of key-value pair tables into a single table?
I have 250+ key-value pair tables with the following characteristics
1) keys are unique within a table but may or may not be unique across tables
2) each table has about 2 million rows
What is the best way to create a single table with all the unique key-values from all these tables? The following two queries work till about 150+ tables
with
t1 as ( select 1 as key, 'a1' as val from dual union all
select 2 as key, 'a1' as val from dual union all
select 3 as key, 'a2' as val from dual )
, t2 as ( select 2 as key, 'b1' as val from dual union all
select 3 as key, 'b2' as val from dual union all
select 4 as key, 'b3' as val from dual )
, t3 as ( select 1 as key, 'c1' as val from dual union all
select 3 as key, 'c1' as val from dual union all
select 5 as key, 'c2' as val from dual )
select coalesce(t1.key, t2.key, t3.key) as key
, max(t1.val) as val1
, max(t2.val) as val2
, max(t3.val) as val3
from t1
full join t2 on ( t1.key = t2.key )
full join t3 on ( t2.key = t3.key )
group by coalesce(t1.key, t2.key, t3.key)
with
master as ( select rownum as key from dual connect by level <= 5 )
, t1 as ( select 1 as key, 'a1' as val from dual union all
select 2 as key, 'a1' as val from dual union all
select 3 as key, 'a2' as val from dual )
, t2 as ( select 2 as key, 'b1' as val from dual union all
select 3 as key, 'b2' as val from dual union all
select 4 as key, 'b3' as val from dual )
, t3 as ( select 1 as key, 'c1' as val from dual union all
select 3 as key, 'c1' as val from dual union all
select 5 as key, 'c2' as val from dual )
select m.key as key
, t1.val as val1
, t2.val as val2
, t3.val as val3
from master m
left join t1 on ( t1.key = m.key )
left join t2 on ( t2.key = m.key )
left join t3 on ( t3.key = m.key )
/A couple of questions, then a possible solution.
Why on earth do you have 250+ key-value pair tables?
Why on earth do you want to consolodate them into one table with one row per key?
You could do a pivot of all of the tables, without joining. something like:
with
t1 as ( select 1 as key, 'a1' as val from dual union all
select 2 as key, 'a1' as val from dual union all
select 3 as key, 'a2' as val from dual )
, t2 as ( select 2 as key, 'b1' as val from dual union all
select 3 as key, 'b2' as val from dual union all
select 4 as key, 'b3' as val from dual )
, t3 as ( select 1 as key, 'c1' as val from dual union all
select 3 as key, 'c1' as val from dual union all
select 5 as key, 'c2' as val from dual )
select key, max(t1val), max(t2val), max(t3val)
FROM (select key, val t1val, null t2val, null t3val
from t1
union all
select key, null, val, null
from t2
union all
select key, null, null, val
from t3)
group by keyIf you can do this in a single query, unioning all 250+ tables, then you do not need to worry about chaining or migration. It might be necessary to do it in a couple of passes, depending on the resources available on your server. If so, I would be inclined to create the table first, with a larger than normal percent free, then do the first set as a straight insert, and the remaining pass or passes as a merge.
Another alternative might be to use the approach above, but limit the range of keys in each pass. So pass one would have a predicate like where key between 1 and 10 in each branch of the union, pass 2 would have key between 11 and 20 etc. That way everything would be straight inserts.
Having said all that, I go back to my second question above, why on earth do you want/need to do this? What is the business requirement you are trying to solve. There might be a much better way to meet the requirement.
John -
Can we achieve data conversion for my scenario key value pair
My data
create table test
( id int,name varchar(10),value int, color varchar(20))
I would like to have data in the following format
where each id will combination of data set for each row for a id and separated by delimiter from another set
like a key value pair
ID Value
1 |a,10,green|a,15,blue|
2 |b,11,red|b,12,yellow|
Please let me know if this can be achived in SSIS using trasnformation or in SQL ?
And if so what is the best approach to hande this conversion
MudassarThanks for your help.
I can assume that it can only be handled in SQL and this cant be done in SSIS transformations.
EXAMPLE 4 - Using XML PATH & correlated subquery for sublist
-- Create comma delimited sublist
SELECT Subcategory = ps.[Name],
ColorList = Stuff((SELECT DISTINCT ',
' + Color AS [text()]
FROM AdventureWorks2008.Production.Product
p
WHERE p.ProductSubcategoryID = ps.ProductSubcategoryID
FOR XML PATH ('')),1,1,'')
FROM AdventureWorks2008.Production.ProductSubcategory
ps
ORDER BY Subcategory;
GO
Subcategory ColorList
Helmets Black, Blue, Red
Hydration Packs Silver
Jerseys Multi, Yellow
Mudassar -
Application specific key-value pairs in jndi.properties
Hello,
Can I specify my application specific key-value pair in jndi.properties?
I tried something like this
java.naming.factory.initial=.jndi.WLInitialContextFactory
java.naming.provider.url=t3://localhost:7001
myVar=myVal
When i tried looking up "myVar" from my client program, I got an error.
The other parameters like weblogic.jndi.WLInitialContextFactory are picked up.
Anyhelp will be appreciated
VasimWe have a similar problem.
We would like to configure our PROVIDER_URL for a specific web application - not
for the entire server. Since the URL should be different in development, test
and production environments, we would prefer to just set it in the deployment
descriptor. And we have a lot of code that just uses
ctx = new InitialContext();
when looking up EJBs, queues etc.
Actually, to take the problem one step further, it should be expected that later
we will have EJB's deployed on different machines/clusters - so we will actually
need specific urls for each EJB.
Is there a good way to do this? Or will we have to custom-develop our own jndi
configuration standard using application parameters to set which JNDI provider
each EJB should be looked up with?
Alternativaely, can we "import" the JNDI trees of the app server in the JNDI tree
of the web servers?
So, how should we go about this?
Robert Patrick <[email protected]> wrote:
Vasim wrote:
Hi Robert,
You are right. But The object "myVar" which I am trying to look upis not in
the JNDI tree nor am I interesed in binding it . But my requirementis that
I have one application specific variable which I am trying to lookup and I
dont want to have a separare config file for this..and hence the question..So, put the properties you want in the jndi.properties file and load
the properties
file from your code by doing something like this:
Properties props = new Properties();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl == null)
cl = System.getSystemClassLoader();
InputStream is = cl.getResourceAsStream("jndi.properties");
props.load(is);
Personally, I would not use this file and would create an application-specific
file
or, as Daniel suggested, define your properties as a System property
and use
System.getProperty("myVar").
btw, is jndi.properties only for those objects which are bound to jnditree?
jndi.properties is only used for creating the JNDI InitialContext. The
whole idea
of this file is that in remote client code (without the jndi.properties
file), you
need to do something like this to tell the JNDI classes how to connect
to the JNDI
provider:
Properties props = new Properties();
props.put(Context.PROVIDER_URL, "t3://myservername:7001");
props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
InitialContext ctx = new InitialContext(props);
but inside the server, you only need to do this because the server is
the provider
and already knows how to connect to itself:
InitialContext ctx = new InitialContext();
Therefore, the jndi.properties file allows you to externalize this property-setting
code that sets up the properties to be passed to the InitialContext constructor
so
that the remote client code can now look exactly like the code inside
the server.
The InitialContext constructor will look for this jndi.properties file
in your
classpath and load it to get the necessary configuration information
to determine
how to connect to the JNDI provider.
Hope this helps,
Robert -
Java Install, Cannot insert a key value pair into the secure store fails,
Dear All,
I'm doing Java Intallaion in BI7 on CI and in the midle of installtions we encounter,
TRACE [iaxxejsexp.cpp:199]
EJS_Installer::writeTraceToLogBook()
NWException thrown: nw.secureStore.cannotInsertIntoSecureStore:
Cannot insert a key value pair into the secure store fails; see output of log file SecureStoreInsert.log:
SAP Secure Store in the File System - Copyright (c) 2003 SAP AG
A key/value pair with this key already exists in the store..
ERROR 2008-04-23 11:36:21
CJSlibModule::writeError_impl()
CJS-30051 Cannot insert a key value pair into the secure store fails; see output of log file SecureStoreInsert.log:
SAP Secure Store in the File System - Copyright (c) 2003 SAP AG
A key/value pair with this key already exists in the store..
TRACE [iaxxejsbas.hpp:460]
EJS_Base::dispatchFunctionCall()
JS Callback has thrown unknown exception. Rethrowing.
ERROR 2008-04-23 11:36:21 [iaxxgenimp.cpp:731]
showDialog()
FCO-00011 The step insertAdminDataInSecStore with step key |NW_Addin_CI|ind|ind|ind|ind|0|0|NW_CI_Instance|ind|ind|ind|ind|8|0|NW_CI_Instance_Configure_Java|ind|ind|ind|ind|4|0|insertAdminDataInSecStore was executed with status ERROR .
TRACE [iaxxgenimp.cpp:719]
showDialog()
There's any want in here can help us Please,
Thanks and Best Regards,
ChrisnaThe clean way to Uninstall JAVA is through SAPINST.
Make user you drop only the JAVA Schema ID (SAPSR3DB)
If you want to uninstall manually, follow as mentioned below :
1. Stop the central services instance and all dialog instances of your SAP system:
a) Log on to the corresponding instance host as user <sapsid>adm.
b) Execute the following commands:
To stop the central services instance:
stopsap r3 <SCSinstanceName>
To stop a dialog instance:
stopsap r3 <DialogInstanceName>
2. Stop the J2EE Engine of the central instance:
a) Log on to your SAP system.
b) Call transaction SMICM.
c) Choose Administration J2EE Instance (local) Send Hard Shutdown
2. Drop the J2EE DB schema (the db schema for this one SAP SID) BE VERY CAREFUL, do not drop the DB schema for another existing system or
the ABAP schema.
a. Log on as user ora<dbsid>.
b. Start sqlplus and connect to the database. Enter:
sqlplus /nolog
c. SQLPLUS>connect / as sysdba
d. Enter the following command to delete the database objects of the database schema:
SQLPLUS> drop user SAP<SCHEMA_ID>DB cascade;
e. Enter the following command to get the file name of the corresponding data file in the file system:
SQLPLUS> select file_name from dba_data_files where \
tablespace_name = PSAP<SCHEMA_ID>DB;
f. Enter the following command to delete the tablespace of the database schema:
SQLPLUS> drop tablespace PSAP<SCHEMA_ID>DB including contents;
g. Exit sqlplus:
SQLPLUS> exit
3. Remove folder "data" at: /sapmnt/QO1/global/security/data
4. Remove folder "SDM" at: /usr/sap/<sid>/<Central instance>/SDM
5. Remove folder "j2ee" at: /usr/sap/<sid>/<Central instance>/j2ee
6. Revert CI instance profile to their original state (backup copies should exist) # they should be in the state before the start of the JavaAdd In
7. If lines beginning with the following parameters appear, delete these lines from the default profile, /usr/sap/<SAPSID>/SYS/profile/DEFAULT.PFL:
j2ee/dbname =
j2ee/dbtype =
j2ee/dbhost =
j2ee/dbadminurl =
j2ee/scs/host =
j2ee/scs/system =
j2ee/ms/port =
8. If lines beginning with the following parameters appear, delete these lines from the central instance pro?le and from all dialog instance pro?les,
/usr/sap/<SAPSID>/SYS/profile/<SAPSID>_<INSTANCE_NAME>_<host_name>:
exe/j2ee =
exe/jlaunch =
rdisp/j2ee_start_control =
rdisp/j2ee_start =
rdisp/j2ee_timeout =
rdisp/j2ee_libpath =
rdisp/frfc_fallback =
jstartup/trimming_properties =
jstartup/instance_properties =
jstartup/protocol =
jstartup/vm/home =
jstartup/max_caches =
jstartup/release =
j2ee/dbdriver =
9. Delete the central services instance
10. Restart ABAP and Install JAVA Add-in
Edited by: Shaji Jacob on Apr 27, 2008 11:46 AM -
[SOLVED] [udev] invalid key/value pair in custom rule
Hey,
this simple rule in /etc/udev/rules.d/99-usb-backup.rules, which is used to automatically mount my encrypted backup disk when plugging in run a backup script after the backup disk has been mounted, is said to be invalid:
SUBSYSTEMS=="usb", ATTRS{idProduct}=="0470", ATTRS{serial}=="2080000048FD", ACTION=="add", ENV{SYSTEMD_WANTS}=="secbackup.service"
(The service file will mount the volume and start the backup script; mounting is done via udiskie.)
The following error pops up when booting the system:
systemd-udevd[225]: invalid key/value pair in file /etc/udev/rules.d/99-usb-backup.rules on line 1,starting at character 131 (':')
I don't see any colon (':') in my rule and the last closing quotation mark (") is the 130th character in this file...
This worked well before; I don't know when the error started to pop up. I use systemd 213-9.
Any hints?
Last edited by ball (2014-06-18 09:28:24)ukhippo wrote:Shouldn't that last “==” be “+=”?
Well... I don't know. I've taken this snippet from jasonwryan's blog post. I guess it's correct...
ukhippo wrote:
If that's just a typo on your part, are there any non-printing characters? Use “od” to check:
od -c /etc/udev/rules.d/99-usb-backup.rules
Nothing suspicious:
0000000 S U B S Y S T E M S = = " u s b
0000020 " , A T T R S { i d P r o d u
0000040 c t } = = " 0 4 7 0 " , A T T
0000060 R S { s e r i a l } = = " 2 0 8
0000100 0 0 0 0 0 4 8 F D " , A C T I
0000120 O N = = " a d d " , E N V { S
0000140 Y S T E M D _ W A N T S } = = "
0000160 s e c b a c k u p . s e r v i c
0000200 e "
0000202 -
Is it possible to load 1 billion key-value pairs into BerkeleyDB database?
Hello,
I experiment with loading huge datasets into BerkeleyDB database. The procedure is as follows:
1. Generate a dump-like file using a script. The file contains key-value pairs (on separate lines, exactly in the format of the dump file, that can be produced by db_dump). The index is hash.
2. Use db_load to create a database. The OS is windows server 2003.
Both key and values are 64-bit longs.
Using this procedure, I succeeded to load 25 million pairs in the database. It took about 1-2 hours.
Next, I tried to load 250 million pairs into an empty database. db_loader runs already 15 hours. It's memory consumption is very low: private bytes ~2M, working set ~2M, virtual size ~13M. db_loader already read all the pairs from disk, as IO is very low now: ~4M per second. I am not sure if db_loader will finish in next 24h hours.
My goal is to load eventually 3 billion key-value pairs into one DB.
I will appreciate if someone will advise me:
1. If BerkeleyDB is capable of dealing with such database volume.
2. Is my procedure good, how to optimize it. Is it possible to allocate more RAM to db_load? Are there other ways to optimize loading time?
Thank you,
Gregory.Hello Sandra,
The version is: Berkeley DB 5.0.21: (March 30, 2010).
The data: keys and values are random 64 bit numbers.
The header of the "dump" file that I am trying to load is (there are 256 * 1e6 key-value pairs in the file):
VERSION=3
format=bytevalue
type=hash
h_nelem=512000000
db_pagesize=8192
HEADER=END
The db_load allocates 1G memory cache.
Thank you,
Gregory. -
A key/value pair with this key already exists in the store
Hi all,
In the installation of PI components on the AS ABAP+ AS JAVA with finalization of the Java Addin the iam facing this problem :
In short it mentioning that the " A key/value pair with this key already exists in the store.", Please see below for more information....:
CJSlibModule::writeWarning_impl()
Execution of the command "/opt/java1.4/bin/java -classpath
/oracle/stage/PIDtemp/sapinst_instdir/NW04S/LM/AS-JAVA/ADDIN/ORA/CENTRAL/CI/install/sharedli
b/launcher.jar -Xmx256m -d64 com.sap.engine.offline.OfflineToolStart
com.sap.security.core.server.secstorefs.SecStoreFS
/usr/sap/PID/SYS/global/security/lib/tools/iaik_jce.jar:/usr/sap/PID/SYS/global/security/lib
/tools/iaik_jsse.jar:/usr/sap/PID/SYS/global/security/lib/tools/iaik_smime.jar:/usr/sap/PID/
SYS/global/security/lib/tools/iaik_ssl.jar:/usr/sap/PID/SYS/global/security/lib/tools/w3c_ht
tp.jar:/oracle/stage/PIDtemp/sapinst_instdir/NW04S/LM/AS-JAVA/ADDIN/ORA/CENTRAL/CI/install/l
ib:/oracle/stage/PIDtemp/sapinst_instdir/NW04S/LM/AS-JAVA/ADDIN/ORA/CENTRAL/CI/install/share
dlib:/oracle/client/10x_64/instantclient/ojdbc14.jar insert -s PID -f
/usr/sap/PID/SYS/global/security/data/SecStore.properties -k
/usr/sap/PID/SYS/global/security/data/SecStore.key admin/host/PID tern" finished with return
code 2. Output:
SAP Secure Store in the File System - Copyright (c) 2003 SAP AG
A key/value pair with this key already exists in the store.
ERROR 2007-02-15 18:35:29
CJSlibModule::writeError_impl()
CJS-30051 Cannot insert a key value pair into the secure store fails; see output of log
file SecureStoreInsert.log:
SAP Secure Store in the File System - Copyright (c) 2003 SAP AG
A key/value pair with this key already exists in the store..
ERROR 2007-02-15 18:35:29 [iaxxgenimp.cpp:731]
showDialog()
FCO-00011 The step insertAdminDataInSecStore with step key
|NW_Addin_CI|ind|ind|ind|ind|0|0|NW_CI_Instance|ind|ind|ind|ind|8|0|NW_CI_Instance_Configure
_Java|ind|ind|ind|ind|4|0|insertAdminDataInSecStore was executed with status ERRORHi Kamalakar
I think this problem happens due to wrong content of SDMKIT.JAR - incorrect crypto SDA is deployed.I dont know the installation procedure you followed because normally this error wont come.
I would rather suggest a work around seeing your problem
<b>Edit the keydb.xml exchanging [ERROR] with [OK]</b>
Follow the above step and restart your installation.
Do not forget to reward points: -
Multiple key-value pairs in JNLP file
Dear All,
I have a JNLP file with multiple key-value pairs :
<resources>
<j2se version="1.4+"/>
<jar href="lib/myFile.jar"/>
<property name="url" value="URL/db"/>
<property name="default" value="10"/>
<property name="m1_query" value="URL1"/>
<property name="m2_query" value="URL2"/>
<property name="m3_query" value="URL3"/>
<property name="p1_query" value="URL4"/>
<property name="p2_query" value="URL5"/>
<property name="p3_query" value="URL6"/>
<property name="p4_query" value="URL7"/>
</resources> I dont know what the key names are in the JNLP file so I cant use getProperty(keyname) directly. Is it possible to read all the key-value pairs in a HashMap and iterate through the list?
Or is there any other way of dealing with it?
Many thanks in advance.
Regards
AnujHi Riem,
Thanks for your help ...
while waiting for a reply ... I managed to do sort out my problem.
Properties p = System.getProperties();
for (Enumeration enu = p.propertyNames() ; enu.hasMoreElements() ;) {
String key = (String)enu.nextElement();
Object value = p.getProperty(key);
if(!value.equals("")) {
keyValues.put(key, value);
}Thanks for your help.
Cheers
Anuj -
Crypting url key/value pairs
on the web i have seen urls like this:
http://www.domain.com/shop?xyz=FHS767KJDF789SFhsf679Iizgboo67hoOOUGg688
I think, that's an url where the key/value pairs are cryted, so clear text the url above might look like this:
http://www.domain.com/shop?id=12&action=show&object=product&navigation=right
I guess that's done for security reasons and it seems to me to be a good way to make an url a little bit harder to understand.
So i would like to ask whether anyone uses this kind of url scrambling and which methode you use to scramble the url? Any tipps, tricks, feedbacks are welcome!
Tanks for your help.Occasionally we create a signature from our query string and append that to the URL in order to check that the URL hasn't been modified. But we don't remove the original parameters so we can use the normal parameter parsing.
Michael -
Effective way to parse key-value pair.
Hi,
I've a PL/SQL process, in which I've lot of dynamic sql routines planned, to parse input data to a procedure.
One of the parameter to call or that'd be passed to this procedure is a "key-value pair"
e.g.
procedure p ( id in number, state_name in varchar2 )
Values could be
20, 'vc1=AZ, vc2=WA, vc3=NY, vc4=NJ'
My requirement is as follows
<ol><li>Parse 'state_name', for values of state ( AZ, WA, NY, NJ ) - note that the list could be of variable length</li>
<li>I'm not interested in 'key' per se ( vc1, vc2, vc3... )</li>
<li>State names are important as ( as ) part of the process, I want to concatenate them to form tables-name,
which (already) exists e.g. table_CA, table_AZ, table_WA, table_NJ - so basically I need to
parse these names and have them in a way to be able to use them as part of other dynamic SQL's.
</li>
</ol>
Please advice.
Thanks.shankariyer wrote:
Is it possible for me to populate the output of this regex_replace into an array of varchar2 ??
Sure:
CREATE OR REPLACE
TYPE STATE_TBL_TYPE
AS
TABLE OF VARCHAR2(2);
SET SERVEROUTPUT ON
DECLARE
v_value_pair VARCHAR2(30) := 'vc1=AZ, vc2=WA, vc3=NY, vc4=NJ';
v_state_tbl STATE_TBL_TYPE := STATE_TBL_TYPE();
BEGIN
FOR v_i IN 1..NVL(LENGTH(v_value_pair) - LENGTH(REPLACE(v_value_pair,',')) + 1,0) LOOP
v_state_tbl.EXTEND;
v_state_tbl(v_i) := LTRIM(REGEXP_SUBSTR(v_value_pair,'=[A-Z]+',1,v_i),'=');
END LOOP;
FOR v_i IN 1..v_state_tbl.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(v_state_tbl(v_i));
END LOOP;
END;
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
2 v_value_pair VARCHAR2(30) := 'vc1=AZ, vc2=WA, vc3=NY, vc4=NJ';
3 v_state_tbl STATE_TBL_TYPE := STATE_TBL_TYPE();
4 BEGIN
5 FOR v_i IN 1..NVL(LENGTH(v_value_pair) - LENGTH(REPLACE(v_value_pair,',')) + 1,0) LOOP
6 v_state_tbl.EXTEND;
7 v_state_tbl(v_i) := LTRIM(REGEXP_SUBSTR(v_value_pair,'=[A-Z]+',1,v_i),'=');
8 END LOOP;
9 FOR v_i IN 1..v_state_tbl.COUNT LOOP
10 DBMS_OUTPUT.PUT_LINE(v_state_tbl(v_i));
11 END LOOP;
12 END;
13 /
AZ
WA
NY
NJ
PL/SQL procedure successfully completed.
SQL> SY. -
Maximum number of key/value pairs in btree or hash database
It's not clear to me from the documentation what the limit is on the number of key/value pairs in a Btree or hash database. The documentation on logical record numbers says that the db_recno_t type is a 32-bit unsigned type, "which limits the number of logical records in a Queue or Recno database, and the maximum logical record which may be directly retrieved from a Btree database, to 4,294,967,295". What does "directly retrieved" mean in this sentence? Does this mean that Btree is limited to 4,294,967,295 key/vaue pairs? If so, is this also the limit for a hash database?
Hi mcgarvek,
In case of Queue, Recno and Btree configured for logical record numbers - you can do that by setting DB_RECNUM flag: http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/db_set_flags.html#DB_RECNUM , the maximum number of records is 4,294,967,295 and after that limit, the next record will be inserted as record number 1.
In case of Hash and Btree, the maximum database size depends on the page size selected by the application. Berkeley DB stores database file page numbers as unsigned 32-bit numbers and database file page sizes as unsigned 16-bit numbers. Using the maximum database page size of 65536, this results in a maximum database file size of 248 (256 terabytes).
Database limits: http://www.oracle.com/technology/documentation/berkeley-db/db/ref/am_misc/dbsizes.html
Logical record numbers: http://www.oracle.com/technology/documentation/berkeley-db/db/ref/am_conf/logrec.html
Regards,
Bogdan Coman -
(quick question)adding key value pairs to hashtable
I know I can create a hashtable and add key value pairs to it with
Hashtable numbers = new Hashtable();
numbers.put("one", new Integer(1));
numbers.put("two", new Integer(2));
numbers.put("three", new Integer(3));
But this is somewhat annoying when I want to add alot of elements. Is there a way to add the elements when I initialize the table. Perhaps something like
Hashtable numbers =
new HashTable("one",new Integer(1),"two",new Integer(2) )If you don't see such a ctor in the javadocs, then there's no easy way to do it.
You'll just have to create two Collections of key, value pairs and add them in programmatically yourself:
import java.util.*;
public class MapLoader
public static void main(String [] args)
if ((args.length > 0) && (args.length % 2 == 0))
List keys = new ArrayList();
List values = new ArrayList();
for (int i = 0; i < args.length; )
keys.add(args[i++]);
values.add(args[i++]);
MapLoader mapLoader = new MapLoader();
System.out.println(mapLoader.loadMap(keys, values));
public Map loadMap(final Collection keys, final Collection values)
if (keys.size() != values.size())
throw new IllegalArgumentException("Must have a key for every value and visa versa");
Map result = new HashMap(keys.size());
Iterator keysIter = keys.iterator();
Iterator valuesIter = values.iterator();
while (keysIter.hasNext() && valuesIter.hasNext())
result.put(keysIter.next(), valuesIter.next());
return result;
}MOD -
CRM7 EH1 ICI/CTI: Add Key-Value Pair to Call Attached Data
We are CRM 7 EHP1 integrated to Genesys CTI (Communication Mangement Software) through ICI.
Is it possible in web_ui to add a Key-Value Pair (kvp) to the Call Attached Data (CAD) that it is sent back to the CMS?
For example: When an agent clicks Transfer to transfer a call to a queue, just prior to the transfer we would like to add a new kvp to the CAD that is sent back to Genesys via ICI.
Any advice on how to do this is appreciated.Hi shiva
Thanks for your help,
Can you check this coding and revert me back ASAP Please.
REPORT BDS_GOS_CONNECTION.
DATA : logical_system LIKE BAPIBDS01-log_system.
CLASSNAME LIKE BAPIBDS01-CLASSNAME
OBJKEY LIKE SWOTOBJID-objkey.
PARAMETERS: pa_lo_sys BAPIBDS01-log_system,
pa_class like BPIBDS01-CLASSNAME,
pa_objkey like swotobjidobjkey.
AT SELECTION-SCREEN.
CALL FUNCTION 'BDS_GOS_CONNECTIONS_GET'
EXPORTING
bor_id = bor_id
IMPORTING
logical_sytem = pa_lo_sys.
classname = pa_class.
objkey = pa_objkey.
EXCEPTIONS
no_objects_found = 1
internal_error = 2
internal_gos_error = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
clear v_attno1.
i_object1-typeid = 'BUS2012'.
i_object1-catid = 'BO'.
i_object1-instid = i_yItem-docno.
call method cl_gos_attachment_query=>count_for_object
exporting
is_object = i_object1
ip_arl = space
receiving
rt_stat = i_stat1.
read table i_stat1 into wa_stat1 index 1.
if sy-subrc eq c_0.
move wa_stat1-counter to v_attno1.
endif.
CALL METHOD cl_gos_attachment_query=>count_for_object
EXPORTING
is_object = object
ip_arl = space
RECEIVING
rt_stat = lt_stat.
READ TABLE lt_stat INDEX 1 into ls_stat.
count = ls_stat-counter.
*The object has to be a concatenation of your document, like this:
CONCATENATE object-instid tab-gjahr INTO object-instid.
ELSE.
CONCATENATE tab-bukrs tab-belnr tab-gjahr INTO
object-instid.
ENDIF. -
Mapping unique elements to a Key Value Pair using XSLT in ESB
Hi Guys,
I am in need of a solution for mapping some of the response elements to a a key value pair in my target schema. How could I achieve this. It is very very urgent. How will the XSL look like
Source
<Source>
*<Element1>One</Element1>*
*<Element2>Two</Element2>*
<Action>Manage</Action>
</Source>
Target
<Target>
<Action>Manage</Action>
<AdditionalData>
*<KeyValuePair>*
*<key>Element1</key>*
*<value>One</value>*
*</KeyValuePair>*
*<KeyValuePair>*
*<key>Element2</key>*
*<value>Two</value>*
*</KeyValuePair>*
</AdditionalData>
</Target>
Edited by: user13156113 on May 25, 2010 7:01 AMBelow is the soultion which I finally did it by myself. Any other solutions would be welcome.
<ns10:AdditionalData>
<xsl:for-each select="//node()">
<xsl:if test="text()">
<ns16:KeyValuePair>
<ns16:Key>
<xsl:value-of select="xp20:upper-case(name(.))"/>
</ns16:Key>
<ns16:Value>
<xsl:value-of select="."/>
</ns16:Value>
</ns16:KeyValuePair>
</xsl:if>
</xsl:for-each>
</ns10:AdditionalData>
Maybe you are looking for
-
Itunes no longer sees ripped music or playlists
Hi, I just upgraded to iTunes 12. Most of my music is imported from CD's & it's all stored on an external hard drive. I now have an issue where iTunes only sees about 50 songs (instead of over 17,000). It no longer sees any of my playlists either. Ho
-
Viewing HDV on external monitor
Hello, is there anyway to view HDV footage on an external monitor? Aside from creating a DV sequence from the HDV footage? If not please tell me why. I am using a Sony HDV deck. Any help would be appreciate. Thanks!
-
I have 3 add-ons which place themselves in the add-on bar: NetVideoHunter, Adblock Plus, Rikaichan I am no longer able to rearrange them as in the past, using the procedure as quoted from the [[What is the Add-on Bar?]] page. Step three does not appe
-
How can I quickly toggle through all of my open files in an application?
How can I quickly toggle through all of my open files in an application? For instance, if I want to bounce back and forth between three documents that I have open in Microsoft Word?
-
Hi everyone: One of my user have problem with mapping share drives. He was able to map the drives before; but one day it started failing. When manually run a script to map it (on the client side), it have no problem and work fine. I updated the NI