Synchronize IR columns via plsql API
Hi!
I would like to use the package wwv_flow_worksheet_standard to synchronize the IR columns in my application out of plsql.
Reason: My IR are based on views (simply: Select * from view_name) I have lots of them and they change frequently via plsql execute immediate.
What I have tried is:
DECLARE
l_flow_id NUMBER (20);
l_region_id NUMBER (20);
l_query VARCHAR2 (4000);
l_result VARCHAR2 (4000);
BEGIN
SELECT application_id, region_id, sql_query
INTO l_flow_id, l_region_id, l_query
FROM apex_application_page_ir
WHERE page_id = 9 AND application_id = 133;
APEX_040100.wwv_flow_worksheet_standard.synch_report_columns (p_flow_id => l_flow_id,
p_region_id => l_region_id,
p_query => l_query,
p_add_new_cols_to_default_rpt => 'Y');
COMMIT;
END;
Unfortunately it doesn't work. When executing the synch_report_columns procedure the following error raises.
ORA-01003: no statement parsed
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1685
ORA-06512: at "SYS.DBMS_SQL", line 629
ORA-06512: at "APEX_040100.WWV_FLOW_WIZARD_API", line 840
ORA-06512: at "APEX_040100.WWV_FLOW_WORKSHEET_STANDARD", line 2735
ORA-06512: at line 23
Can anyone help?
Best regards,
Mike
Hello Joni!
Thank you for your reply! Unfortunately this is not what I am searching for.
I want to update the interactive report definition on my apex page out of plsql.
E.g. the query of the IR on my page is: Select * from view_name
When i add/remove columns from the view, the IR is broken. In order to repair the IR I need to logon to apex, edit every IR and save it again. Afterwards the new columns will appear in the report.
Because my application has about 30 IR's and columns will change frequently I would like to script this step.
The function APEX_040100.wwv_flow_worksheet_standard.synch_report_columns sounds like it does exactly what I need.
Unfortunately what I tried doesn't work. (Look above)
BR Michael
Similar Messages
-
Refresh Interactive Report Definition via PLSQL
Hello!
I am currently working on set of generic database-apex applications.
That means I have two applications. The first is the admin apex application used to define columns and tables.
The second application is the one for the end users, where they can view and edit the values.
My problem now is: Every time the admin adds or removes a column I need to edit the user-apex application, open the region definition of all interactive reports and switch to the report attributes to add/remove the columns of the report.
I would like to automate this step via plsql. How can I achieve this?
I guess the first step would be to load a list of all IRs...
select * from apex_application_page_ir where application_id = 133;
But I don't know how to reload the columns...
Can anyone help?
Thanks in advance!
BR MikeHello Andre, Hello Mimi!
Thank you for your messages.
First to your idea Mimi, i think you brought me on the right track. Using your update statement doesn't works for me.
There are some missing permissions I couldn't grant and in addition I think this would hardly work because apex_application_page_ir is a complex view.
But I am currently working on a solution using the wwv_flow_worksheet_standard.synch_report_columns function. Code like this:
DECLARE
l_flow_id NUMBER (20);
l_region_id NUMBER (20);
l_query VARCHAR2 (4000);
l_result VARCHAR2 (4000);
BEGIN
SELECT application_id, region_id, sql_query
INTO l_flow_id, l_region_id, l_query
FROM apex_application_page_ir
WHERE page_id = 9 AND application_id = 133;
APEX_040100.wwv_flow_worksheet_standard.synch_report_columns (p_flow_id => l_flow_id,
p_region_id => l_region_id,
p_query => l_query,
p_add_new_cols_to_default_rpt => 'Y');
COMMIT;
END;
Unfortunately it doesn't work. When executing the synch_report_columns procedure the following error raises.
ORA-01003: no statement parsed
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1685
ORA-06512: at "SYS.DBMS_SQL", line 629
ORA-06512: at "APEX_040100.WWV_FLOW_WIZARD_API", line 840
ORA-06512: at "APEX_040100.WWV_FLOW_WORKSHEET_STANDARD", line 2735
ORA-06512: at line 23
Maybe you or someone else can reproduce the error?
Therefor you simply need an interactive report on a page, based on a view. Remove some column of the view definition-the IR will display an error like this:
ORA-20001: get_dbms_sql_cursor error ORA-00904: "DUV_FOCUS_OFFSET": invalid identifier
Then execute the code above (use your page and app_id).
After the execution the IR should work again. In my opinion...
@Andre: The application I am working on is a critical pice of software used in a highly sophisticated semiconducter fab.
It is simply impossible to train some of the shift leaders or operators on apex, in fact it is a great thread if someone else can change the application and produces a downtime.
So for me it is necessary to script everything as far as possible. I finished nearly everything, simply the synch of the report columns is missing...
BR Mike -
Plsql API for recording holidays in EBS 12
Hello all of you,
I shoud make a call from a foreign application (Oracle webcenter content 11g) to EBS to record a holiday for an employee (as the work contract states)
I think I should make this through plsql API . What API can I use? I found only hr_std_hol_abs_api api related to holidays but I think it's not the right one .
Thanks for your advices,
AurelHi;
All APIs are listed in Oracle Integration Repository
http://irep.oracle.com/index.html
API User Notes - HTML Format [ID 236937.1]
R12.0.[3-4] : Oracle Install Base Api / Open Interface Setup Test [ID 427566.1]
Oracle Trading Community Architecture API User Notes, June 2003 [ID 241320.1]
Technical Uses of Customer Interface and TCA-API [ID 269121.1]
"12: How To Access API References via the Oracle Integration Repository" [ ID 462586.1]
"Oracle Integration Repository Documentation Resources Release 12" [ ID 396116.1]
Pelase also check below:
Api's in EBS
Re: Api's in EBS
http://sairamgoudmalla.blogspot.com/2009/05/script-to-find-oracle-apis-for-any.html
API
Fixed Asset API
List of API
Re: List of APIs
Oracle Common Application Components API Reference Guide
download.oracle.com/docs/cd/B25284_01/current/acrobat/jta115api.pdf
List of APIs and open interface R12
Re: List of APIs and open interface R12
Regard
Helios -
Access multiple email accounts with PLSQL API?
I'm trying to access all of the email accounts on a server using the PLSQL API to institute an email retention policy.
I have been able to login to the server as orcladmin with sysadmin privileges, but when I get the top-evel folders (mail_folder.list_toplevel_folders) I only get the INBOX.
thanks,
MarkWell, it looks like it's not possible to do this in PLSQL. So, I'm going to try Java. Can this be done in Java?
-
Corrupt Credit Note created via DI API
Hello,
when i try to create a credit note via di api i get the error message "one of the base documents has been closed", even if the source document is not closed. But this is not the main problem. After this i have a corrupt credit memo in my system, that means a credit memo with out any detail lines. The error occurs only on one customer systems, on a lot of other systems the creation of credit notes works fine. Had anybody the same effect or clue what causes this problem.
RegardsHello we found the problem, i can reproduce it on a belgium database.
I want you to inform about a critical error in the SBO_SP_TransactionNotification.
If you check the line data of a document and send an error for this data the front end works fine. But if you use the DI-API the header data of document will be saved and the lines will be not saved.
if @object_type in ('14','19') and @transaction_type = 'A'
begin
declare @corrCRD as varchar(8)
if @object_type = '14'
set @corrCRD = (select distinct(correction) from ovtg where code in (select vatgroup from RIN1 where docentry = @list_of_cols_val_tab_del) and correction = 'N')
else if @object_type = '19'
set @corrCRD = (select distinct(correction) from ovtg where code in (select vatgroup from RPC1 where docentry = @list_of_cols_val_tab_del) and correction = 'N')
if @corrCRD = 'N'
begin
set @error = 1
set @error_message = 'You have entered a regular VAT Code on the document, this is not allowed'
end
end -
PO from SO via DI API:Base document card and target document card do not ..
HI All,
I am trying to create Purchase Order from Sales Order. This is possible by GUI (on Sales Order on logistics tabs Click On Purcase Orders CheckBox.
I got the error message: -5002-Base document card and target document card do not match.
The message itself can be understandable, because the Customer and Supplier has a different CardCode.
I am sure I am using a correct code
oPo.Lines.BaseType = BoObjectTypes.oOrders
oPo.Lines.BaseEntry = sDocEntry
oPo.Lines.BaseLine = iLineNum
Where oPo is a Purchase Order document.
sDocEntry is a Sales Order docentry and iLineNum is a Line number of Sales Order
For other A/R to A/R and A/P to A/P documents are working fine.
Has anybody found this error or has anybody created application like this?
I am using sbo2007PL46
Regards,
J.Hi guys,
this is still on the suggestion page:
Link existing Purchase Orders to (Sales) Orders via DI API : View Idea
I tryed with 9.1 PL 4 and it didn't work. -
Creating a Good Receipt PO via DI API No matching records found (ODBC -2028)
Hi,
I trying to create a Good Receipt PO via DI API. It is working when the user I used to log in to SAP via the DI API is a Professional User but when I changed it to a Limited Logistics User, I'm receiving the No matching records found (ODBC -2028). I have already added the SDK Tools license to that user but still I'm receiving that error.
So is it that the DI API will only work with a Professional User license or I can still use a Limited Logistics User?HI J S L,
I get same error when I use different user that I just now add the SDK Tools without restarting the database server. But previous user that I added SDK Tools before restart, no error.
Today
User 1 - add SDK Tools, no restart, error
Last Wednesday
User 2 - add SDK Tools, no restart, error
Today - database server restarted this morning
User 2 - no more error
Both User 1 and 2 are Limited Logistics User.
Best regards,
Dennis -
Adding New Portal User using PLSQL APIs
I am trying to use the PLSQL APIs to add a new user based. Please let me know if I am on the right track. I am using Portal 3.0.8
1) At the portal30_sso schema, I used wwwsso_ls_private.ls_create_user and it works.
2) At the portal30 schema, I used wwsec_api.add_portal_user and it works.
3) I used the activate_user api and it works.
4) Still can't log on using my user name and password. The message is "Error: Authentication failed. Please try again. (WWC-41419)"
Please help.
nullHere are the steps I have taken to set up Self Registration using the PL/SQL API
1st Solution...
1) At the portal30_sso schema, I used wwwsso_ls_private.ls_create_user and it works.
2) At the portal30 schema, I used wwsec_api.add_portal_user and it works.
3) I used the activate_user api and it works.
4) Still can't log on using my user name and password. The message is "Error: Authentication failed. Please try again. (WWC-41419)"
2nd Solution
1st Solution...
1) At the portal30_sso schema, I used WWSSO_API_USER_ADMIN.create_user and it works.
2) At the portal30 schema, I used wwsec_api.add_portal_user and it works.
3) I used the activate_user api and it works.
4) Still can't log on using my user name and password. The message is "Error: Authentication failed. Please try again. (WWC-41419)"
Here is a code sample of step 1.
declare
v_user portal30_sso.sso_user_type;
v_err number;
begin
portal30_sso.wwsso_api_user_admin.create_user
p_username => 'NEWUSER2',
p_password => 'PASSWORD',
p_error_code => v_err
end;
It would really help me out if I can get a response to see if it is possible or not to create a self-registration feature for Portal. Thank you for your help.
null -
How to determine host status in a task via python api
Hello all,
using the python api I am having some issues trying to determine the status of a host within a task. For example I have a job, with one task and 10 hosts associated with that task. Eight hosts finish the task, 2 fail. However via the api I can only seem to determine the status of the job and the task. What I want is to be able to generate a report that basically matches what you see via the gui (ie 8 hosts ok, 2 hosts failed). The data structure OnStageTaskData gives me a status and a list of hosts, but not a status for each host. (Note I am not using any of the depricated functions/data structures). Currently my code looks like (minus the api init, etc)...
# list all the jobs for last week
joblist = api.GetJobs()
for job in joblist:
# if the job occured in the last week
if job.c_time > reportstarttime:
print "\nJob name %s Time %s " %(job.name, time.ctime(job.c_time))
try:
jobdetails = api.GetOnStageJob(job.id)
except COsApiJobNotFoundException:
print "Can't find job %s details" %job.name
continue
for tasks in jobdetails.job_data.tasks:
for hostid in tasks.task_data.target:
try:
hostinfo = api.GetHostGroup(hostid)
except OsApiHostNotFoundException:
print "Can't find host details %s" %tasks.task_data.name
print "Hostname %s Status %s" %(hostinfo.name, tasks.status)
which generates output like...
Job name chg233146-sol9 Time Sun Jan 13 10:31:42 2008
Hostname tacnomsrv02 Status Failed
Hostname tacpthsrv01 Status Failed
anyone have another way to doing this or suggestions? Or is this kind of info not available via the api? Thank you.Hi ConnectSolutions,
As you correctly pointed out, there is some bug in our code
that keeps the room active and you dont receive any events or
notification if you are entering as guest and waiting and the host
arrives. Also, since you havent entered yet i.e your role is still
5 i.e. UserRoles.LOBBY , you can't access any of the UserManager's
collections and will get a length of 0 always. We will be fixing
this with priority .
But you can get around the problem as of now, by having a
small shared model of yours ( any collectionNode or sharedModel
will do) where you create a node and publish a message on it from
the Owner's side whenever the owner/host enters to notify everyone
that he has entered. Just remember to set the accessmodel of
NodeConfiguration of node on which you are publishing to LOBBY ie.
role = 5 , and make the publishModel = 100 so that only owners can
publish on this node. In this way , any users waiting will be
receiving this message and will know the host has arrived. If you
can't get this sharedModel concept to work, let me know. I will try
to run on my side.
And as of our side regarding actual fix, we will fix this use
case and put in the next drop of SDK and also update in forum about
it.
On the host side though, he is always notified when he enters
if there are pending users knocking to enter. See the KnockingQueue
example in case you want to explore that.
Thanks
Hironmay Basu -
Cannot create AR Invoice negative amount with WithHolding Tax negative amount via DI API
Hi All,
I tried to create AR Invoice Document via DI API, but with negative amount and negative withholding tax amount.
Document added successfully, but when i open the document in SAP, and i open WTax Table information, withholding tax amount become zero,
Please see image below.
But when i add the same document through SAP Screen, i can fill WTax Amount with negative amount.
SAP Version 9.0 PL 5
Please kindly help,
Thanks
Best Regards
SiddhartaHello.
If this is different to the behavior of the B1 application it should be considered a bug - like any such difference between DI API and app.
HTH -
How to apply XSLT to XML file while importing XML data using XSU plsql API
I need to load XML file with nested repeating elements into Oracle tables and I am using XSU PLSQL API utility package dbms_xmlSave.insertXML. Can use XMLGen package also!!
I found out through documentation that I need to have XML file with ROWSET/ROW tags around the elements. As I have no control of XML file coming from external source, so I wish to apply XSLT to XML. I found setXSLT/setStylesheet procedures but it's not working as expected.
Can you help me with some sample code for the purpose.
ThanksI'm new at XML and XSL as well, but maybe the following code I built can help:
CREATE OR REPLACE PACKAGE Xml_Pkg AS
/* this record and table type are used for the transformTags procedure */
TYPE TagTransform_t IS RECORD (
old_tag VARCHAR2(255),
new_tag VARCHAR2(255) );
TYPE TagTransformList_t IS TABLE OF TagTransform_t INDEX BY BINARY_INTEGER;
/* use DBMS_OUTPUT to print out a CLOB */
PROCEDURE printClobOut(p_clob IN OUT NOCOPY CLOB);
/* using a list of old/new tags, transform all old into new in XML2 */
PROCEDURE transformTags(
p_List TagTransformList_t,
p_XML1 IN OUT NOCOPY CLOB,
p_XML2 IN OUT NOCOPY CLOB);
END Xml_Pkg;
CREATE OR REPLACE PACKAGE BODY Xml_Pkg AS
/* print a CLOB using newlines */
PROCEDURE printClobOut(p_clob IN OUT NOCOPY CLOB) IS
buffer_overflow EXCEPTION;
PRAGMA EXCEPTION_INIT(buffer_overflow,-20000);
l_offset NUMBER;
l_len NUMBER;
l_o_buf VARCHAR2(255);
l_amount NUMBER; --}
l_f_amt NUMBER := 0; --}To hold the amount of data
l_f_amt2 NUMBER; --}to be read or that has been
l_amt2 NUMBER := -1; --}read
l_offset2 NUMBER;
l_amt3 NUMBER;
l_chk NUMBER := 255;
BEGIN
l_len := DBMS_LOB.GETLENGTH(p_clob);
l_offset := 1;
WHILE l_len > 0 LOOP
l_amount := DBMS_LOB.INSTR(p_clob,CHR(10),l_offset,1);
--Amount returned is the count from the start of the file,
--not from the offset.
IF l_amount = 0 THEN
--No more linefeeds so need to read remaining data.
l_amount := l_len;
l_amt2 := l_amount;
ELSE
l_f_amt2 := l_amount; --Store position of next LF
l_amount := l_amount - l_f_amt; --Calc position from last LF
l_f_amt := l_f_amt2; --Store position for next time
l_amt2 := l_amount - 1; --Read up to but not the LF
END IF;
/* divide the read into 255 character chunks for dbms_output */
IF l_amt2 != 0 THEN
l_amt3 := l_amt2;
l_offset2 := l_offset;
WHILE l_amt3 > l_chk LOOP
DBMS_LOB.READ(p_clob,l_chk,l_offset2,l_o_buf);
DBMS_OUTPUT.PUT_LINE(l_o_buf);
l_amt3 := l_amt3 - l_chk;
l_offset2 := l_offset2 + l_chk;
END LOOP;
IF l_amt3 != 0 THEN
DBMS_LOB.READ(p_clob,l_amt3,l_offset2,l_o_buf);
DBMS_OUTPUT.PUT_LINE(l_o_buf);
END IF;
END IF;
l_len := l_len - l_amount;
l_offset := l_offset+l_amount;
END LOOP;
EXCEPTION
WHEN buffer_overflow THEN
RETURN;
END printClobOut;
/* shortcut "writeline" procedure for CLOB buffer writes */
PROCEDURE wr(p_clob IN OUT NOCOPY CLOB, s VARCHAR2) IS
BEGIN
DBMS_LOB.WRITEAPPEND(p_clob,LENGTH(s)+1,s||CHR(10));
END;
/* the standard XSLT should include the identity template or the output XML will be malformed */
PROCEDURE newXsltHeader(p_xsl IN OUT NOCOPY CLOB, p_identity_template BOOLEAN DEFAULT TRUE) IS
BEGIN
DBMS_LOB.TRIM(p_xsl,0);
/* standard XSL header */
wr(p_xsl,'<?xml version="1.0"?>');
/* note that the namespace for the xsl is restricted to the w3 1999/XSL */
wr(p_xsl,'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">');
IF p_identity_template THEN
/* create identity template (transfers all "other" nodes) */
wr(p_xsl,' <xsl:template match="node()">');
wr(p_xsl,' <xsl:copy>');
wr(p_xsl,' <xsl:apply-templates/>');
wr(p_xsl,' </xsl:copy>');
wr(p_xsl,' </xsl:template>');
END IF;
END newXsltHeader;
PROCEDURE newXsltFooter(p_xsl IN OUT NOCOPY CLOB) IS
BEGIN
/* standard xsl footer */
wr(p_xsl,'</xsl:stylesheet>');
END newXsltFooter;
/* using the stylesheet in p_xsl, transform p_XML1 into p_XML2 */
PROCEDURE transformXML(p_xsl IN OUT NOCOPY CLOB, p_XML1 IN OUT NOCOPY CLOB, p_XML2 IN OUT NOCOPY CLOB) IS
l_parser XMLPARSER.Parser;
l_doc XMLDOM.DOMDocument;
l_xsl_proc XSLPROCESSOR.Processor;
l_xsl_ss XSLPROCESSOR.Stylesheet;
BEGIN
/* parse XSL CLOB */
l_parser := XMLPARSER.newParser;
BEGIN
XMLPARSER.showWarnings(l_parser,TRUE);
XMLPARSER.parseClob(l_parser,p_xsl);
l_doc := XMLPARSER.getDocument(l_parser);
XMLPARSER.freeParser(l_parser);
EXCEPTION
WHEN OTHERS THEN
XMLPARSER.freeParser(l_parser);
RAISE;
END;
/* get Stylesheet from DOMDOC */
l_xsl_ss := XSLPROCESSOR.newStylesheet(l_doc,NULL);
BEGIN
/* parse XML1 CLOB */
l_parser := XMLPARSER.newParser;
BEGIN
XMLPARSER.showWarnings(l_parser,TRUE);
XMLPARSER.parseClob(l_parser,p_xml1);
l_doc := XMLPARSER.getDocument(l_parser);
XMLPARSER.freeParser(l_parser);
EXCEPTION
WHEN OTHERS THEN
XMLPARSER.freeParser(l_parser);
RAISE;
END;
/* process doc to XML2 */
l_xsl_proc := XSLPROCESSOR.newProcessor;
BEGIN
XSLPROCESSOR.processXSL(l_xsl_proc, l_xsl_ss, l_doc, p_xml2);
XSLPROCESSOR.freeProcessor(l_xsl_proc);
EXCEPTION
WHEN OTHERS THEN
XSLPROCESSOR.freeProcessor(l_xsl_proc);
RAISE;
END;
XSLPROCESSOR.freeStylesheet(l_xsl_ss);
EXCEPTION
WHEN OTHERS THEN
XSLPROCESSOR.freeStylesheet(l_xsl_ss);
RAISE;
END;
END transformXML;
/* transform XML1 into XML2 using list p_List of old/new tags */
PROCEDURE transformTags(p_List TagTransformList_t, p_XML1 IN OUT NOCOPY CLOB, p_XML2 IN OUT NOCOPY CLOB) IS
l_xsl CLOB;
BEGIN
/* create XSL CLOB */
DBMS_LOB.CREATETEMPORARY(l_xsl,TRUE);
/* create standard header with identity template */
newXsltHeader(l_xsl,TRUE);
/* create one template for each node translation */
FOR i IN 1..p_List.COUNT LOOP
wr(l_xsl,' <xsl:template match="'||p_List(i).old_tag||'">');
wr(l_xsl,' <'||p_List(i).new_tag||'><xsl:apply-templates/></'||p_List(i).new_tag||'>');
wr(l_xsl,' </xsl:template>');
END LOOP;
/* create standard footer */
newXsltFooter(l_xsl);
-- dbms_output.put_line('l_xsl:');
-- dbms_output.put_line('--------------------');
-- printClobOut(l_xsl);
-- dbms_output.put_line('--------------------');
transformXML(l_xsl, p_XML1, p_XML2);
DBMS_LOB.FREETEMPORARY(l_xsl);
/* -- unit testing
set serveroutput on size 100000
Declare
queryContext DBMS_XMLQUERY.ctxType;
xList XML_PKG.TagTransformList_t;
xmlCLOB CLOB;
xmlCLOB2 CLOB;
Begin
DBMS_LOB.CREATETEMPORARY(xmlCLOB,true);
DBMS_LOB.CREATETEMPORARY(xmlCLOB2,true);
xList(1).old_tag := 'A';
xList(1).new_tag := 'MyTag1';
xList(2).old_tag := 'B';
xList(2).new_tag := 'MyTag2';
queryContext := DBMS_XMLQUERY.newContext('Select * from t');
xmlCLOB := DBMS_XMLQUERY.getXML(queryContext);
DBMS_XMLQuery.closeContext(queryContext);
dbms_output.put_line('xmlCLOB:');
dbms_output.put_line('--------------------');
XML_PKG.printClobOut(xmlCLOB);
dbms_output.put_line('--------------------');
xml_pkg.transformTags(xList,xmlCLOB,xmlCLOB2);
dbms_output.put_line('xml2CLOB:');
dbms_output.put_line('--------------------');
XML_PKG.printClobOut(xmlCLOB2);
dbms_output.put_line('--------------------');
DBMS_LOB.FREETEMPORARY(xmlCLOB);
DBMS_LOB.FREETEMPORARY(xmlCLOB2);
End;
END transformTags;
END Xml_Pkg; -
Unable to start process via GP API in which group is exposed as input
Hi,
I am not been able to start process using GP API for the particular senario.
I created Process at design time.
In this process I mapped parameters to a group and exposed this group, So that input is required for initiating the process.
Now I want to initiate this process via GP API.
I got sucess in starting processes which takes parameters as inputs or which does not need any inputs, but i was not been able to start process where group is exposed.
it's giving me GP INVOCATION Exception.
Please Help ASAP
Regards,
PratikPratik,
I try to simulate with scenario described by you and I got success with my test.
Follow my java code:
public boolean initiateProcessSDN () {
boolean ret = false;
try {
IUser user = UMFactory.getUserFactory().getUserByLogonID("uces");
IGPUserContext userContext = GPContextFactory.getContextManager().createUserContext(user);
IGPProcess processTemplate
= GPProcessFactory.getDesigntimeManager().getActiveTemplate(
"8DC0B411957D11DDB7910017F2EBE4A5", userContext);
IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
IGPStructure params = GPStructureFactory.getStructure(processTemplate.getInputParameters());
params.setAttributeValue("NameGroup", "Pedro");
params.setAttributeValue("AddressGroup", "XPTO");
IGPProcessRoleInstanceList roles = rtm.createProcessRoleInstanceList();
IGPProcessInstance prInstance
= rtm.startProcess( processTemplate,
"Test 1",
"Test 2",
user,
roles,
params,
user);
ret = true;
} catch (Exception ex) {
ret = false;
return ret;
Print screen about my GP design:
Callable Object with 4 parameters
http://img530.imageshack.us/img530/16/sdngpgroup001bt5.jpg
Action grouping CO parameters into 2 groups
http://img147.imageshack.us/img147/2006/sdngpgroup002xy3.jpg
Process reflecting these groups as input parameters
http://img147.imageshack.us/img147/9184/sdngpgroup003pp0.jpg
Process started by java code above
http://img530.imageshack.us/img530/8833/sdngpgroup004no4.jpg
Best Regards,
Pedro Nunes -
Hello,
as far as I know the only possible way to duplicate a document (for example a Sales Order) via DI API is to save it as xml and then to open it again. but it doesn't work properly, because I get a message "bad value RDR1.BaseLine line: 1". And if I change the property to one manually, the new document can be saved, but it can't be changed any more. I get a message "table rdr1 was changed by another user". What shall I do, so that it works properly?
Best Regards,
AlexanderHi,
anfortunatly there is nothing I could omit. I need the same Document and also links to the base documents. There is a code below I used to duplicate a document.
Private Function CopyDocument(ByVal oDoc As SAPbobsCOM.Documents) As SAPbobsCOM.Documents
Dim oXmlDoc As New XmlDocument()
oXmlDoc.LoadXml(oDoc.GetAsXML())
For Each oNode As XmlNode In oXmlDoc.SelectNodes("//DocEntry")
oNode.InnerText = ""
Next
oXmlDoc.SelectSingleNode("//DocNum").InnerText = ""
oXmlDoc.SelectSingleNode("//JrnlMemo").InnerText = ""
oXmlDoc.Save(Application.StartupPath & "\Document_" & oDoc.DocEntry.ToString() & ".xml")
CopyDocument = moSBOCompany.GetBusinessObjectFromXML(Application.StartupPath & "\Document_" & oDoc.DocEntry.ToString() & ".xml", 0)
End Function
Can somebody help me?
Best Regards,
Alexander -
How to get IPv6 site prefix via Windows API?
Hello,
we need urgent help. We have to automatically configure a postgres sql server. For this reason we need to determine the IPv6 site prefix. Using windows command line this is pretty easy:
netsh interface ipv6 show siteprefix
We are only interested in the site prefixes themselves, e.g. no lease time is needed. We want to get this information via Windows API.
For this purpose we use GetAdaptersAddresses function. Within the result of
FirstPrefix the needed information is included. But it's much to much information and it's not clear for us how to filter the result. We need always
exact the same result like the command above produces.
Any help or hint would be very very appreciated.
GregHi Valery,
I mean a Portal Resource..
Inside portal, when a go to properties of a specific document, in tab "Access Link" it shows a "Short Id".
I'd like to know via API how to get this Id, or any other Code that it's unique for every resource or document in portal.
Thank you! -
Add UDF to OPOR ,OINV ... via DI API
Hello...
i want to add a User Defined Field to Documents via DI API. Is this possible? And if its possible, please show me a way to do it thx
best regards
Matthiasthis is just what i have tried.
But i found the mistake.
The function always puts an "@" before the tablename if there is none. And thats not good
thx
Matthias
Maybe you are looking for
-
Photoshop CS5 on Macbook Pro 10.6.8 Crashes
All of a sudden, since this morning, my Photoshop has been crashing and I cannot figure out why. Could a file I'm using on photoshop be corrupt? Please help! I have reinstalled, deleted preferences, gotten rid of MM fonts. I do not know what to do an
-
I can't replace or delete pages in a pdf file - I am receiving a "bad parameters" error message
I am unable to replace or delete pages in pdf files. I keep getting an error message that says "bad parameters". This just recently started happening. I'm using Windows 7 & PPT 2010. Help.
-
Hi, I am new to using labview in database access. I'm using MS access database and LabSQL. I did examples that are given within labSQL(e.g Fetch into Table, and Insert onto Table) and successfully compiled. I want to know if it is possible to insert
-
Adding user review comments to each item
I am creating my site in Muse and then will be publishing to BC. My website will be have a least 7,000 items on it. I want to be able to have user review comments for EACH item. will I be able to do this using BC? I am guessing every item would have
-
How to re-set keychain password
After trying to sync all my devices and making too many password changes, I forgot my Keychain password and am locked out. anyone know how to fix?