Data Adaptor - Sample Code (DerbyDataAdaptor)
Hello,
I am trying to understand the DerbyDataAdaptor which is mentioned in the the Oracle Policy Automation Developers Guide. The guide states that their are some files stored @
examples\interview-engine\data-adaptor\src\create_db.sql
examples/interview-engine/data-adaptor
examples\rulebases\compiled\Parents and Children.zip
I cannot locate all these files, I am looking at the location C:\Program files (x86)\Oracle\Policy Modelling\examples. Their is no interview engine folder nor rulebases folder.
However I can find Parents and Children.zip but it is not at the location specified above,I'm not sure if it is the same example.
Please can you help me locate these files?
And if you can provide any help you think may be useful for the DerbyDataAdapter that would be most helpful.
Many Thanks
Edited by: 1005143 on 10/05/2013 00:03
Hi,
Have now found where these are located, it's in the Java Runtime Zip file, thanks.
Similar Messages
-
Sample code on how to populate data in DropDownListbox
Hi all
i am new to the webdynpro for java.
i have one UI element called DropDownListBox and i want to populate some desired values to the dropdown list box.
what are the different ways are there to populate data in DropDownList box.
for example i have city as dropdownlist box and i want to populate some values in drop downlistbox like bangalore,hyderabad,chennai and delhi,
can you pls send the sample code on the same?
Regards
Suresh BabuHi,
If you want to retrieve the city names then you can use the standard tables in R/3.
We have countries list in T500T. Like this we have table for the cities also.
Or
You can manually populate a table and bind this table to the list box.
Please check out this link -
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ded11778-0801-0010-258f-ac3b9408a194
http://help.sap.com/saphelp_nw70/helpdata/EN/74/450e8af57065468e88e4b86de47e4b/frameset.htm
Regards
Lekha -
Need Sample code to upload the data to Application Server
Hi ,
I need to upload the data to application server.
The output should be an XML file.
Can anybody send me sample code for this.
Reward points are assured.
Best Regards
Bhagat.may be this code wil help ,first to downjload the XML fine -
1)
REPORT zhr_test2_tk.
TYPE-POOLS: ixml.
TYPES: BEGIN OF xml_line,
data(256) TYPE x,
END OF xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_ostream TYPE REF TO if_ixml_ostream,
l_renderer TYPE REF TO if_ixml_renderer,
l_document TYPE REF TO if_ixml_document.
DATA: l_element_position TYPE REF TO if_ixml_element,
l_element_title TYPE REF TO if_ixml_element,
l_element_flight TYPE REF TO if_ixml_element,
l_element_from TYPE REF TO if_ixml_element,
l_element_to TYPE REF TO if_ixml_element,
l_element_dummy TYPE REF TO if_ixml_element,
l_value TYPE string.
DATA: l_xml_table TYPE TABLE OF xml_line,
l_xml_size TYPE i,
l_rc TYPE i.
DATA: lt_erec TYPE TABLE OF hrp5126,
l_erec TYPE hrp5126.
DATA: date(10),
time(4),
filepath TYPE string.
CONSTANTS: filedir TYPE string VALUE 'C:\tmp\',
filename TYPE string VALUE 'ZHR_test'.
START-OF-SELECTION.
fill internal table
SELECT * FROM hrp5126 INTO TABLE lt_erec.
Start filling xml DOM object from internal table lt_erec.
LOOP AT lt_erec INTO l_erec.
*Create the root node 'position'
IF sy-tabix EQ 1.
create an ixml factory
l_ixml = cl_ixml=>create( ).
create Document Object Model
l_document = l_ixml->create_document( ).
Fill root node with value 'position'
l_element_position = l_document->create_simple_element(
name = 'position'
parent = l_document ).
ENDIF.
IF sy-tabix GT 1.
create element jobtitle as child of position
l_value = l_erec-jobtitle.
l_element_title = l_document->create_simple_element(
name = 'job_title'
parent = l_element_position
value = l_value ).
l_value = l_erec-empl_start_date.
l_element_dummy = l_document->create_simple_element(
name = 'StartDate'
parent = l_element_title
value = l_value ).
l_value = l_erec-empl_end_date.
l_element_dummy = l_document->create_simple_element(
name = 'EndDate'
parent = l_element_title
value = l_value ).
ENDIF.
ENDLOOP.
IF sy-subrc NE 0.
WRITE: 'No data in table hrp5125'.
ENDIF.
create a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
connect internal XML table to streamfactory
l_ostream = l_streamfactory->create_ostream_itable(
table = l_xml_table ).
render the document
l_renderer = l_ixml->create_renderer( ostream = l_ostream
document = l_document ).
l_rc = l_renderer->render( ).
Get time and date
WRITE sy-uzeit2(2) TO time2(2).
WRITE sy-uzeit0(2) TO time0(2).
WRITE sy-datum4(2) TO date0(2).
WRITE sy-datum6(2) TO date2(2).
WRITE sy-datum0(4) TO date4(4).
*Build filename with date and time reference
CONCATENATE filedir filename date time '.xml' INTO filepath.
<i>* This is the code I hope to modify in order to save the xml structure on the application server, with a specified filepath.</i>
<b> OPEN DATASET filepath FOR OUTPUT IN BINARY MODE.
LOOP AT lt_erec into l_erec.
TRANSFER l_erec TO filepath.
ENDLOOP.
CLOSE DATASET filepath.</b>
save XML document
l_xml_size = l_ostream->get_num_written_raw( ).
*This is the code for download to local computer
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_xml_size
filename = filepath
filetype = 'BIN'
CHANGING
data_tab = l_xml_table
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
2) uploading tht PC XML file to APPliaction server -
DATA rec like QISRS_XML_LINE.
OPEN DATASET filepath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
LOOP AT l_xml_table into rec.
TRANSFER rec TO filepath.
ENDLOOP.
CLOSE DATASET filepath. -
Sample code converting binary data to image file
Hi experts ,
I need sample code to convert binary data (bytes) in to an image file.
any help will be appreciated.
Thanks and Regards,
NareshYou need to show binary and decimal? Or now just decimal?
If binary and decimal, you can right click on your indicator and choose "Display Format...". If you select the Advanced Editing Mode, you can make soft interesting display formats. This includes showing the same value in mulitple ways in the indicator. Try something like "%032b - %d" for the format string.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines -
Sample code in Update Rule to restrict data selection?
We used to restrict data selection in InfoPackage data selection, e.g., for company code range when loading data from a source system (e.g. EBP which is similar to R3), but somehow the company code range we set in InfoPackage data selection not working and we found actually it occurs on the source system side when running RSA3 on EBP side and input the company code range in RSA3 selection section, but still it extracts data beyond the company code range. We don't understand why EBP data selection doesn't work, then we consider in update rule on BW to set the company code range. We know in update rule, we can select Start Routine, formula, or routine to set the company code range. But we would be appreciated if experts here can recommend which one is the most efficient to load data fast for data load performance reason and would be appreicated if you can let us know the sample code!
Thanks in advance!hi Hari,
I copy the whole code of the start routine below:
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: ...
Includes to update generic objects
INCLUDE rsbctgn_top .
INCLUDE rsbctgn_update_rules .
INCLUDE rsbctbbp_generic_objects.
The following section is prepared for you if you compound
the business partner 0BPARTNER with the
Source System 0BBP_SYS_BP or if you compound the organizational
Unit 0ORGUNIT with the source System 0BBP_SYS_BP
TYPE-POOLS: RRSV.
Data: L_HLP_CHAVL_CMP TYPE RSCHAVL.
DATA:
L_S_DEP TYPE RRSV_S_DEP,
L_T_DEP TYPE RRSV_T_DEP.
End of compound
DATA: l_s_errorlog TYPE rssm_s_errorlog_int,
l_hlp_chavl TYPE rschavl.
$$ end of global - insert your declaration only before this line -
The follow definition is new in the BW3.x
TYPES:
BEGIN OF DATA_PACKAGE_STRUCTURE.
INCLUDE STRUCTURE /BIC/CS0BBP_CONF_TD_1.
TYPES:
RECNO LIKE sy-tabix,
END OF DATA_PACKAGE_STRUCTURE.
DATA:
DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
FORM startup
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
DATA_PACKAGE STRUCTURE DATA_PACKAGE
USING RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
to make monitor entries
delete data_package where 0comp_code < 'X300' OR 0comp_code > 'X6ZZ'.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM. -
Need Sample code to retrieve Data from Portal DB(Oracle)
Would anyone provide me steps to create application with a sample code to retrieve data from portal DB which is oracle and see the output in table format.
Hi Bris ,
The sample code , you didnt specified from where do u want to access the oracle thorough java code or through webdynpro .
Sample code to access through Java
import java.sql.*;
class Customer
public static void main(String args[]) throws SQLException
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
System.out.println("Connecting to the database...");
try
Connection cn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","t");
Statement st=cn.createStatement();
ResultSet rs=st.executeQuery("select 'Connected' from dual");
rs.next();
String s=rs.getString(1);
System.out.println(s);
st.close();
cn.close();
catch(Exception ex)
System.out.println("The exception raised is:" + ex);
[code]
If accessing through JDBC datasorce.
https://www.sdn.sap.com/irj/sdn/thread?threadID=328550
https://www.sdn.sap.com/irj/sdn/thread?threadID=309386
[code]
package com.dhl.employeemodel;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBConnectionManager {
Connection connection;
* @return
public Connection getConnection() {
try
Context jndiContext = new InitialContext();
DataSource ds = (DataSource)jndiContext.lookup("jdbc/MyAlias");
connection = ds.getConnection();
catch(Exception connectionErrEx)
//connectionErrEx.printStackTrace();
return null;
return connection;
Thanx
Pankaj -
Custom data link issues in sample code
Hi all,
I had tried to debug/run the sample of custom data link of Indesign SDK CS2. I found issue in this sample code whenever I create a package of the document which having the custom data link, at this time I got the message dialog box having the message "Cannot copy necessary linked file(s)".
anybody know about this problem that how we can resolve this, Please let me know.Pete, I think this is a known issue- see http://support.adobe.com/devsup/devsup.nsf/docs/54028.htm for some workarounds.
best wishes
Ian -
Sample code snippet needed to provision appinstance with child data in R2
Gurus,
I have developed some code to provision an application instance to a user using API but it is not working.
Can you please provide me some sample code to provision with child data this using API.
Here are the errors.
oracle.iam.provisioning.exception.GenericProvisioningException: An error occurred in oracle.iam.provisioning.spi.DOBProvisioningMechanism/provision while provisioning application instance with key 16907 to user with name TESETUSER the cause of error is oracle.iam.provisioning.exception.GenericProvisioningConfigException: Entitlement attribute not marked as key in reconciliation field mapping for UD_ADUSRC.
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at oracle.iam.provisioning.api.ProvisioningService_p7m7x_ProvisioningServiceRemoteImpl_1036_WLStub.provisionx(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
at $Proxy2.provisionx(Unknown Source)
at oracle.iam.provisioning.api.ProvisioningServiceDelegate.provision(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at Thor.API.Base.SecurityInvocationHandler$1.run(SecurityInvocationHandler.java:68)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.security.Security.runAs(Security.java:41)
at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(weblogicLoginSession.java:52)
at Thor.API.Base.SecurityInvocationHandler.invoke(SecurityInvocationHandler.java:79)
at $Proxy3.provision(Unknown Source)
at OIM.provisioning.DirectProvisionApplicationInstance.provisionResource(DirectProvisionApplicationInstance.java:118)
at OIM.provisioning.DirectProvisionApplicationInstance.main(DirectProvisionApplicationInstance.java:179)
Caused by: oracle.iam.provisioning.exception.GenericProvisioningException: An error occurred in oracle.iam.provisioning.spi.DOBProvisioningMechanism/provision while provisioning application instance with key 16907 to user with name TESETUSER the cause of error is oracle.iam.provisioning.exception.GenericProvisioningConfigException: Entitlement attribute not marked as key in reconciliation field mapping for UD_ADUSRC.
at oracle.iam.provisioning.util.ProvisioningUtil.throwGenericProvisioningException(ProvisioningUtil.java:216)
at oracle.iam.provisioning.spi.DOBProvisioningMechanism.provision(DOBProvisioningMechanism.java:401)
at oracle.iam.provisioning.impl.ProvisioningServiceImpl$4.process(ProvisioningServiceImpl.java:488)I am new to the Windows programming environment (I'm running Windows 7).
I am looking for sample code that will do the following:
1.
12.
If you expect a useful answer here, you'll have to narrow your thread(s) to one specific
issue. Posting a (virtually) complete application specification is far too broad and
comprehensive for any one thread in these forums.
Pick *one* aspect of this project and describe what problems you're having writing the code.
Post a new thread for each specific problem.
As posted, you appear to be hoping to find code already completely written for this project.
Most sample code illustrates *one* task, not a dozen. If you aren't able or willing to do
the lion's share of the coding yourself, you may have to consider contracting a developer.
- Wayne -
Need Sample Code in C# to Insert,Update,Query data using W 2.0 wsdl
Hi,
Can anyone please share sample code in C# to Insert,Update,Query data using W 2.0 wsdl.
Thanks in advanceI have found solution.
Need add following line for non string data type.
objOutreachUpdateList.Opportunity[0].IndexedNumber0Specified = true; -
Hi all,
This is what I want to achieve. I have an attribute for an IO, but the values for that has to be decided at the transfer structure level. I want to write a routine in the transfer rules to populate the field.
I have another field that gets populated from R/3. I need to write a routine which would take this value and see if it falls in the range and have to decide the value and populate.
I have gl_account coming in, and in the routine I need to take that value of the gl_account and see if it falls in the range of 1 5000 or 6700 - 8130 if so assign a + sign and if not assign a sign to the new field.
Any sample code would be appreciated and rewarded.
Thanks,
SriGlobal code used by conversion rules
$$ begin of global - insert your declaration only below this line -
TABLES: ...
DATA: ...
$$ end of global - insert your declaration only before this line -
$$ begin of routine - insert your code only below this line -
DATA: l_s_errorlog TYPE rssm_s_errorlog_int.
Data: temp1 TYPE RANGE OF TRAN_STRUCTURE-ZDEBITCREDIT,
Data: temp1_line LIKE LINE OF temp1.
temp1_line-sign = 'I'.
temp1_line-option = 'BT'.
temp1_line-low = '001'.
temp1_line-high = '5000'.
APPEND temp1_line TO temp1
Data: temp2 TYPE RANGE OF TRAN_STRUCTURE-ZDEBITCREDIT,
Data: temp2_line LIKE LINE OF temp2.
temp2_line-sign = 'I'.
temp2_line-option = 'BT'.
temp2_line-low = '5001'.
temp2_line-high = '8000'.
APPEND temp2_line TO temp2
Data: temp(1) char.
if TRAN_STRUCTURE-0glaccnt IN temp1.
temp3 = '+'.
elseif TRAN_STRUCTURE-0glaccnt IN temp2.
temp 3= '-'.
endif
RESULT = temp3 .
returncode <> 0 means skip this record
RETURNCODE = 0.
abort <> 0 means skip whole data package !!!
ABORT = 0.
$$ end of routine - insert your code only before this line - -
Routine sample code for reading 2 fields from existing DSO
Hi Gurus,
I am a monkey when it comes to write ABAP code. I have one DSO-A where we store accounting info of purchading (from DS 2lis_02_acc) and one DSO-B getting data from 2lis_02_scl data source.
We need to write a rountine to read DSO-A for G/L account and populate DSO-B G/L account field.
Please provide me the sample code for this.
Warm Regards,
AnilHi anil,
Create a local table this is type of you source,
Data : LV_table TYPE XXXX
use the select statement to read the table of DSO .You have to use th active table for the dso that you want to read data from.
Select xxxfieldxxx FROM /BIC/A..........50
into lv_table where
filed name of of scheule line probably order no and item no .
<soruce-fields>-IOBELN = IOBELN
and <source-fields>-IOBELP = IOBELP.
Checke the techinal name i am not sure about it. It will be something like that.
Cheers mate -
Customer Open Interface sample code?
Hi
I am trying to import some data (customers) from a legacy
system into oracle. I would like to use the oracle customer open
interface but can anyone please give me some sample code how
they did the import?
Thank you
alphaHi
I am trying to import some data (customers) from a legacy
system into oracle. I would like to use the oracle customer open
interface but can anyone please give me some sample code how
they did the import?
Thank you
alpha -
A sample code to check records of a system table?
hi ABAP4 experts,
We are pretty new at ABAP4. We would be appreciated if you can provide a sample code to check how many records and calculate a total amount for a specific field, e.g., DMBTR in a system table, e.g., BSEG. Note: there is no any selection for this table BSEG, we just want to get the total record count in this table and also the total amount for a specific field e.g. DMBTR in this table.
Do we have to use an internal table to transfer all the records of BSEG into the internal table to get the result?
We will give you reward points!Hi Kevin,
Using SUM directly in SQL will NOT work for table BSEG because BSEG is pool table. You will get an ABAP error.
"Aggregate functions and the addition DISTINCT are not supported in field lists for pooled and cluster tables".
You need an internal table to transfer all data from BSEG and perform calculation for count and sum.
Concerning about performance running perhaps you can code something like this.
REPORT ZZFLTEST NO STANDARD PAGE HEADING.
TABLES: BSEG.
DATA: CURS TYPE CURSOR,
PACKAGE_SIZE LIKE RMCS4-MC_CM_PSIZE VALUE '10000'.
DATA: BEGIN OF I_BSEG OCCURS 0,
BELNR TYPE BSEG-BELNR,
BURKS TYPE BSEG-BURKS,
GJAHR TYPE BSEG-GJAHR,
BUZEI TYPE BSEG-BUZEI,
DMBTR TYPE BSEG-DMBTR,
SHKZG TYPE BSEG-SHKZG.
DATA: END OF I_BSEG.
DATA: TOT_DMBTR TYPE BSEG-DMBTR,
TOT_REC TYPE I.
SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP.
PARAMETERS: P_SIZE LIKE RMCS4-MC_CM_PSIZE DEFAULT '10000'.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK B01.
START-OF-SELECTION.
PACKAGE_SIZE = P_SIZE.
OPEN CURSOR WITH HOLD CURS FOR
SELECT BELNR BURKS GJAHR BUZEI DMBTR SHKZG
FROM BSEG
WHERE BELNR <> SPACE
AND BURKS <> SPACE
AND GJAHR <> SPACE
AND BUZEI <> SPACE.
*Fetch internal table I_BSEG for every 10000 records.
DO.
FETCH NEXT CURSOR CURS
INTO TABLE I_BSEG PACKAGE SIZE PACKAGE_SIZE.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
ENDDO.
CLOSE CURSOR CURS.
LOOP AT I_BSEG.
TOT_REC = TOT_REC + 1.
IF I_BSEG-SHKZG = 'S'.
TOT_DMBTR = TOT_DMBRT + I_BSEG-DMBTR * -1.
ELSE.
TOT_DMBTR = TOT_DMBTR + I_BSEG-DMBTR.
ENDIF.
ENDLOOP.
WRITE: / 'TOTAL BSEG-DMBTR:', TOT_DMBTR,
/ 'TOTAL RECORD: ', TOT_REC.
END-OF-SELECTION.
Hope this will help.
Regards,
Ferry Lianto -
Default data adaptor error when deploying a war file in weblogic
Hi All,
Newbie here with a few questions regarding the deployment of OPA 10.1. Really hoping you guys can help...
1) I'm attempting to deploy an unexploded web-determinations.war file on WebLogic. Thanks to this forum I've got past the issues of "rulebase directory not found" etc. However, i'm now faced with an issue which I can't find any info on. Please see below.
3672074 [[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] WARN com.or
acle.determinations.web.platform.controller.actions.StartSessionAction - Could not instansate defau
lt data adaptor
java.lang.NullPointerException
at java.io.File.<init>(File.java:194)
at com.oracle.determinations.web.platform.plugins.data.XDSDataAdaptor.<init>(XDSDataAdaptor.
java:55)
at com.oracle.determinations.web.platform.controller.actions.StartSessionAction.createInterv
iewSession(StartSessionAction.java:173)
at com.oracle.determinations.web.platform.controller.actions.StartSessionAction.getResource(
StartSessionAction.java:66)
at com.oracle.determinations.web.platform.servlet.WebDeterminationsServlet.doGet(WebDetermin
ationsServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.
java:226)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.oracle.determinations.web.platform.util.CharsetFilter.doFilter(CharsetFilter.java:46)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:3393)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2
140)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
I've got the following entry in the application.properties file too...
# Default XDS data adaptor file path
#xds.file.path =data
From what we can see we believe the code is getting a null pointer because of the following method in the WebDeterminationsServletContext class.
public String resolveFullPath(String path)
File f = new File(path);
return f.isAbsolute() ? f.getAbsolutePath() : this.servletContext.getRealPath(path);
We believe the getRealPath(path), highlighted in red, is returning null. Any ideas how we can resolve this?
2) The second issue I'm facing is with regards the plugins.libraries property in the application.properties file. I've got the entry as
plugin.libraries =DataAdaptor.DA;
which should point to our customised data adaptor. However I'm getting the following error.
4242994 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] WARN com.or
acle.determinations.web.platform.servlet.WebDeterminationsServletContext - Can not find class: Data
Adaptor.DA
4243025 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] WARN com.or
acle.determinations.interview.engine.local.LocalInterviewEngine - Can not find class: DataAdaptor.D
A
3) Also, does anyone know if it's possible to deploy a web-determinations.war file containing additional internal application code? What we're attempting to do is deliver a single war file which not only holds the web determination code but also all the code for an application which wraps the OWD within it. At present this just isn't working. I'm not sure what the conflict is exactly. The only way i seem to be able to get this working is by deploying the code in two seperate war files.
Any help on these issues would be greaty appreciated.
Thanks,
Taj(2) is being caused because your data adaptor plugin is not installed properly. The jar that contains your plugin needs to go in the WEB-INF/lib directory and you must specify the fully qualified class name in the plugin.libraries property of the application.properties file.
If you haven't provided a custom data adaptor, Web Determinations will configure and attach the default one for use instead, which is file based. If you are deploying to WebLogic as an unxeploded war, you must configure the directory the default data directory the plugin will uses by specifying an absolute path that your instance of Web Determinations has read/write permissions to in the xds.file.path property of the application.properties file. In your case (1) is basically being caused by (2) since if the your data adaptor was loaded correctly the default one wouldn't load at all.
As for (3) yes it's likely possible, provided you don't have library conflicts. How it's done really depends on what these additional customisations consist of. -
Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values
Dear Friends,
I am new to the Badi technology. We would like to populate/change the standard field values, (Purchasing group) during Purchase Requisition creation/change.
Method --> PROCESS_ITEM.
I tried the following code, but system blnaks out all the field values entered during PR creation.
Appreciate, if you could provide me some sample code which can be of help.
Reg
Kumar
Sample code----
METHOD if_ex_me_process_req_cust~process_item .
DATA: k_mereqitem TYPE mereq_item,
om_data type mereq_item,
om_datax type mereq_itemx,
k_mereqitem = im_item->get_data( ).
check im_count = 1.
if k_mereqitem-bsart = 'ST' and
k_mereqitem-loekz = ' '.
om_data-pstyp = '5'. " assign default item category code
om_data-bnfpo = k_mereqitem-bnfpo.
om_data-WERKS = k_mereqitem-WERKS.
om_datax-pstyp = 'X'.
call method im_item->set_datax
exporting im_datax = om_datax.
call method im_item->set_data
exporting im_data = om_data.
endif.
ENDMETHOD.Hi Kumar,
i have not a special solution for your case, but i use this BADI with great effort
As my comments in example are in german lg. i explain in short words what i do:
X) define data
1) select data from base item
1a) header-data
1b) item data (easy)
1c) accounting data
2+3) check field values, post warning message + mostly change values + sometimes set cursor focus on field
Have a look and give me some points if my example increased your BADI knowledge
regards
Jörg
METHOD if_ex_me_process_po_cust~process_item .
* Business-Add-Inn ME_PROCESS_PO_CUST
* Jörg Sauterleute - 23.12.2005
* Ablauf:
* 1. Datenbschaffung
* 2. Feldänderungen prüfen + Warnung ausgeben
* 3. Feldinhalte prüfen + evtl. ändern u. Hinweis ausgeben
DATA: ls_mepoitem TYPE mepoitem,
ls_mepoheader TYPE mepoheader,
ls_mepoaccounting TYPE mepoaccounting.
* Interfacereferenz auf <if_purchase_order_mm>
DATA: header_obj TYPE REF TO if_purchase_order_mm.
* Interfacereferenz auf <if_purchase_order_account_mm> über Tabelle
DATA: it_accountings TYPE purchase_order_accountings, "Tabelle
accounting_obj TYPE purchase_order_accounting.
* Include für Ausgabe von Meldungen
* im BAdI ME_PROCESS_PO_CUST niemals ABAP-Statement MESSAGE verwenden!
INCLUDE mm_messages_mac.
* Hilfsvariablen
DATA: h_change_mepoitem TYPE c,
h_text TYPE string.
IF sy-sysid = 'HLT'. break sau. ENDIF.
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 1. Datenbeschaffung
* Kopfdaten
header_obj = im_item->get_header( ).
ls_mepoheader = header_obj->get_data( ).
* Positionsdaten
ls_mepoitem = im_item->get_data( ).
* Kontierungsdaten (Accounting) über Tabelle it_accountings
it_accountings = im_item->get_accountings( ).
* ...IF eingebaut, weil sonst später Abbruch, wenn sy-subrc <> 0
IF NOT ls_mepoitem-knttp IS INITIAL.
LOOP AT it_accountings INTO accounting_obj.
ls_mepoaccounting = accounting_obj-accounting->get_data( ).
ENDLOOP.
ENDIF.
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 2. Daten prüfen -> Warnmeldung
* Feld Empfänger (Kontierung) prüfen -> Warnmeldung
IF ls_mepoheader-ekorg = '1000' AND
ls_mepoheader-bsart = 'IB'.
IF NOT ls_mepoitem-knttp IS INITIAL.
CASE ls_mepoheader-ekgrp.
WHEN '500' OR '501'.
IF NOT ls_mepoaccounting-wempf IS INITIAL.
mmpur_metafield mmmfd_recipient. "Warenempfänger - Cursor setzen
mmpur_message_forced 'I' 'ME' '303' text-011 '' '' ''.
* Warnmeldung wieder aus Protokoll entfernen.
IF ls_mepoaccounting-wempf IS INITIAL.
mmpur_remove_messages_by_id ls_mepoaccounting-id.
mmpur_business_obj_id ls_mepoaccounting-id.
ENDIF.
ENDIF.
WHEN OTHERS.
IF ls_mepoaccounting-wempf IS INITIAL.
mmpur_metafield mmmfd_recipient. "Warenempfänger - Cursor setzen
mmpur_message_forced 'W' 'ME' '303' text-010 '' '' ''.
ENDIF.
* Warnmeldung wieder aus Protokoll entfernen.
IF NOT ls_mepoaccounting-wempf IS INITIAL.
mmpur_remove_messages_by_id ls_mepoaccounting-id.
mmpur_business_obj_id ls_mepoaccounting-id.
ENDIF.
ENDCASE.
ENDIF.
ENDIF.
* Ende Feld Empfänger (Kontierung) prüfen -> Warnmeldung
* Ende test
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 3. Positionsdaten prüfen/ändern -> setzen
CLEAR: h_change_mepoitem,
h_text.
* Kennzeichen Wareneingang prüfen/ändern
* Belegart 'NB' immer mit "Wareneingang" wegen Log. Rechnungsprüfung
* Belegart 'IB' immer ohne "Wareneingang" weil Einsatz Workflow
* (Kennzeichen 'WEPOS' setzen/nicht setzen)
IF NOT ls_mepoitem-knttp IS INITIAL.
CASE ls_mepoheader-bsart.
WHEN 'NB'.
* Prüfung ob gesetzt
* Wenn nicht, dann setzen und Daten übergeben
* Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
IF ls_mepoitem-wepos IS INITIAL.
ls_mepoitem-wepos = 'X'.
h_change_mepoitem = 'X'.
* im_item->set_data( EXPORTING im_data = ls_mepoitem ).
h_text = text-001.
mmpur_metafield mmmfd_gr_ind . "WE-Kennzeichen - Cursor setzen
* message erst später ausführen!
* mmpur_message_forced 'I' 'ME' '303' text-001 '' '' ''.
ENDIF.
WHEN 'IB'.
* Prüfung ob nicht gesetzt
* Wenn doch, dann entfernen und Daten übergeben
* Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
IF NOT ls_mepoitem-wepos IS INITIAL.
ls_mepoitem-wepos = ' '.
h_change_mepoitem = 'X'.
* im_item->set_data( EXPORTING im_data = ls_mepoitem ).
h_text = text-002.
mmpur_metafield mmmfd_gr_ind . "WE-Kennzeichen - Cursor setzen
* message erst später ausführen!
* mmpur_message_forced 'I' 'ME' '303' text-002 '' '' ''.
ENDIF.
ENDCASE.
ENDIF.
* Ende Kennzeichen Wareneingang prüfen/ändern
* Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
* (für autom. Gutschriftsverfahren Verpackungseinkauf)
* Kreditordaten
DATA: it_lfm1 TYPE TABLE OF lfm1,
wa_lfm1 TYPE lfm1.
IF ls_mepoheader-ekorg = '1000' AND
ls_mepoheader-bsart = 'NB' OR
ls_mepoheader-bsart = 'KA'.
IF ls_mepoitem-xersy IS INITIAL AND
ls_mepoitem-umson IS INITIAL. "kostenlose Lieferung
SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
WHERE lifnr = ls_mepoheader-lifnr AND
ekorg = ls_mepoheader-ekorg.
IF sy-subrc = 0.
READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.
IF wa_lfm1-xersy = 'X'.
ls_mepoitem-xersy = 'X'.
h_change_mepoitem = 'X'.
* im_item->set_data( EXPORTING im_data = ls_mepoitem ).
h_text = text-005.
mmpur_metafield mmmfd_ers. " Kennz. aut.WE-Abrechnung - Cursor setzen
* message erst später ausführen!
* mmpur_message_forced 'I' 'ME' '303' text-005 '' '' ''.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Ende Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
* Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
* (für autom. Gutschriftsverfahren Verpackungseinkauf)
* Kreditordaten bereits deklariert
* DATA: it_lfm1 TYPE TABLE OF lfm1,
* wa_lfm1 TYPE lfm1.
IF ls_mepoitem-knttp IS INITIAL.
* nicht anwenden bei kontierten Bestellungen
IF ls_mepoitem-pstyp = 0.
* nicht anwenden bei gefülltem Positionstyp (z.B. 'L' = Lohnbearbeitung, Preis 0,00 EUR)
IF ls_mepoheader-ekorg = '1000' AND
ls_mepoheader-bsart = 'NB' OR
ls_mepoheader-bsart = 'KA'.
IF ls_mepoitem-webre IS INITIAL AND
ls_mepoitem-umson IS INITIAL. "kostenlose Lieferung
SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
WHERE lifnr = ls_mepoheader-lifnr AND
ekorg = ls_mepoheader-ekorg.
IF sy-subrc = 0.
READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.
IF wa_lfm1-webre = 'X'.
ls_mepoitem-webre = 'X'.
h_change_mepoitem = 'X'.
* im_item->set_data( EXPORTING im_data = ls_mepoitem ).
h_text = text-006.
mmpur_metafield mmmfd_gr_based_iv. "WE-bezogene RP - Cursor setzen
* message erst später ausführen!
* mmpur_message_forced 'I' 'ME' '303' text-006 '' '' ''.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Ende Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
** Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
** (bisher nur Natec)
** Infosatzdaten (Konditionen) deklarieren
** Verweis of Tabelle mit Kopfzeilen immer mit TYPE TABLE OF
* DATA: it_ekomd TYPE TABLE OF ekomd,
* wa_ekomd TYPE ekomd.
* IF ls_mepoheader-ekorg = '1300' AND
* ls_mepoheader-bsart = 'NB' .
* CALL FUNCTION 'ME_GET_INFORECORD_CONDITIONS'
* EXPORTING
* i_ekorg = ls_mepoheader-ekorg
* i_esokz = '0' " '0' = NB
* i_infnr = ls_mepoitem-infnr
* i_lifnr = ls_mepoheader-lifnr
* i_matkl = ls_mepoitem-matkl
* i_matnr = ls_mepoitem-matnr
* i_werks = ls_mepoitem-werks
* TABLES
* tekomd = it_ekomd.
* SORT it_ekomd BY datbi DESCENDING.
* READ TABLE it_ekomd INTO wa_ekomd INDEX 1.
* CASE ls_mepoheader-ekorg.
* WHEN '1300'.
** Anforderung Natec: wenn Infosatz-Kondition
** a) leer o. nicht gültig => AB setzen, wenn fehlt
** b) älter 2 Monate => AB setzen, wenn fehlt
** c) nicht älter 2 Monate => AB entfernen, wenn gesetzt
** Hilfsvariablen
* DATA: h_vgldat TYPE sy-datum. " Vergleichsdatum
* DATA: h_ergebnis TYPE c.
** Alter der Infosatzkondition ermitteln.
* CALL FUNCTION 'CCM_GO_BACK_MONTHS'
* EXPORTING
* currdate = sy-datum
* backmonths = '002'
* IMPORTING
* newdate = h_vgldat.
* IF wa_ekomd-datbi < sy-datum OR " gefunden Kondition nicht gültig oder
* wa_ekomd-datbi IS INITIAL. " keine Kondition gefunden
* h_ergebnis = 'a'.
* ENDIF.
* IF wa_ekomd-datab < h_vgldat.
* h_ergebnis = 'b'.
* ENDIF.
* IF wa_ekomd-datab > h_vgldat.
* h_ergebnis = 'c'.
* ENDIF.
** Prüfung ob nicht gesetzt
* IF ls_mepoitem-kzabs = ' ' AND
* h_ergebnis = 'a' OR
* h_ergebnis = 'b' .
* ls_mepoitem-kzabs = 'X'.
* h_change_mepoitem = 'X'. "Merker setzen, geändert wird am Schluss
** im_item->set_data( EXPORTING im_data = ls_mepoitem ).
* h_text = text-003.
** message erst später ausführen!
** mmpur_message_forced 'I' 'ME' '303' text-004 '' '' ''.
* ENDIF.
** Prüfung ob gesetzt
* IF ls_mepoitem-kzabs = 'X' AND
* h_ergebnis = 'c' .
* ls_mepoitem-kzabs = ' '.
* h_change_mepoitem = 'X'. "Merker setzen, geändert wird am Schluss
** im_item->set_data( EXPORTING im_data = ls_mepoitem ).
* h_text = text-004.
** message erst später ausführen!
** mmpur_message_forced 'I' 'ME' '303' text-003 '' '' ''.
* ENDIF.
* ENDCASE.
* ENDIF.
** Ende Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
* Bestell-/Bestellpreis-Mengeneinheit prüfen/setzen
DATA: h_txz01 TYPE mepoitem-txz01. " Materialkurztext
IF ( ls_mepoheader-ekorg = '1000' OR
ls_mepoheader-ekorg = '1500' ) AND
ls_mepoheader-bsart = 'IB' AND
NOT ls_mepoitem-knttp IS INITIAL.
* Vergleichen ob eingegebene Mengeneinheit in Kurztext "avisiert"
CONCATENATE '(' ls_mepoitem-meins ')' INTO h_txz01.
IF ls_mepoitem-txz01 CS h_txz01.
IF NOT ls_mepoitem-meins IS INITIAL.
mmpur_metafield mmmfd_unit . "Steuer-Kennz. - Cursor setzen
mmpur_message_forced 'W' 'ME' '303' 'ME' ls_mepoitem-meins
text-031 ''.
ENDIF.
* sonst standarmäßig 'LE' setzen wegen Problemen bei Obligo
ELSE.
IF NOT ls_mepoitem-meins = 'LE'.
ls_mepoitem-meins = 'LE'.
ls_mepoitem-bprme = 'LE'.
h_change_mepoitem = 'X'.
* im_item->set_data( EXPORTING im_data = ls_mepoitem ).
h_text = text-030.
mmpur_metafield mmmfd_unit . "Steuer-Kennz. - Cursor setzen
* message erst später ausführen!
* mmpur_message_forced 'I' 'ME' '303' text-030 '' '' ''.
ENDIF.
ENDIF.
ENDIF.
* Ende Bestell-Mengeneinheit prüfen/ändern
* Steuerkennzeichen prüfen/setzen (für EK-Gruppe 500,501)
IF ls_mepoheader-ekorg = '5000' AND
ls_mepoitem-matnr IS INITIAL.
CASE ls_mepoheader-ekgrp.
WHEN '500' OR '501'.
IF ls_mepoitem-mwskz IS INITIAL.
ls_mepoitem-mwskz = 'V4'.
h_change_mepoitem = 'X'.
* " im_item->set_data( EXPORTING im_data = ls_mepoitem ).
* h_text = text-020.
* mmpur_metafield mmmfd_tax_code . "Cursor Steuer-Kennz.
* " message erst später ausführen!
* " mmpur_message_forced 'I' 'ME' '303' text-020 '' '' ''.
ENDIF.
ENDCASE.
ENDIF.
* Ende Steuerkennzeichen prüfen/ändern
* zu 3.
* zum Schluss noch die geänderten mepoitem-xxxx setzen
* + gleiche Meldungen (I ME 303) ausgeben
IF h_change_mepoitem = 'X'.
im_item->set_data( EXPORTING im_data = ls_mepoitem ).
ENDIF.
IF NOT h_text IS INITIAL.
mmpur_message_forced 'I' 'ME' '303' h_text '' '' ''.
ENDIF.
* Ende Daten prüfen/ändern -> setzen
ENDMETHOD. "IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM
Maybe you are looking for
-
Troubles saving flash text (or buttons) in CS3
I have been trying to build a banner in dreamweaver cs3 with flash text, but i can neither save nor apply the text as i keep getting the error message, "text1.swf is an invalid file name. Please enter a different name." and i continue to get the mess
-
Excel Paper Size(A3) select
Hi, Can anybody explain me how to set the paper size(A3) by using report generation tool kit. I tried in the following method but i got error code -2147352567( 0x80020009 in hex). From the Excel Get ActiveX Reference vi taking the Excel_Worksheet ref
-
Xfce4 keyboard layout switcher
I am having a strange issue with setting up xfce4 on my fathers' laptop. Every time I switch the keyboard layout, the x terminal emulator start acting weird: [jarda-wien@primator ~]$ whoami jarda-wien [jarda-wien@primator ~]$ echo hello bash: echo he
-
Hi Not able to reschedule a partially confirmed order in cm21 screen.Please help. And also when changing the orders from one production line to another and saving it ,it is taking long time and timing out. It will be great if you give the importance
-
How to return new blob object?
Hi, I am trying to find documentation on how to return a custom abstract data type (ADT) using the CREATE TYPE... and BLOB interface. How can I return a new object type defined inside a blob. Can I return a blob (without initializing the lob locator