Calling Dot Net program From oracle Database
Hi
is there any way to call DOT NET program Like C# from oracle database, i mean is there way to call it from pl-sql stored procedure or trigger ..etc
I read that is possible with java , C, C++, but is it possible with C#
Best Regards
If your Oracle database is running on Windows and is a reasonably recent version (I believe 10.1 or later), it has the ability to create .Net stored procedures just like you have the ability to create Java stored procedures. That tends not to be a particularly commonly used feature but it's an option. If you compile your .Net application to a DLL, you could also call it as an external procedure.
More commonly, however, if you're talking about a .Net program that is deployed on a middle tier server, however, would be for the .Net application to expose an API (say, a web service API) that the database could invoke (via UTL_DBWS or UTL_HTTP).
Justin
Similar Messages
-
How to call MSSQL stored procedure from oracle database
MSSQL and Oracle databases are linked thru ODBC link using Oracle HSODBC.
I can query MSSQL table or view from Oracle Database using standard notation for acessing remote objects schema.object@dblink_name...
Can anybody give me syntax for calling MSSQL stored procedure thru ODBC database link?
I tried syntax exec schema.stored_procedure@dblink_name but it doesn't work...i'm getting schema.stored_procedure must be declared error...
Tnx,in advance!
Dejan BoticaOracle database 10gR2.
MSSQL2000 database.
For example query:
select * from dbo.Tbl_Test@kron@dw_jamnica; works fine...
...while for example exec dbo.Test@kron@dw_jamnica;
reports error:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBO.TEST@KRON@DW_JAMNICA' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Table Tbl_Test and procedure Test exists in MSSQL instance.
Regards,
Dejan -
Calling SQL Server Function from Oracle Database link
Hi ,
i have some data from a old SQL server i would i can access with a database link but i cant call function from my database link.
i would like to do something like
@SPAN_PROD = Database link
_EnerttObtApReelBassSys is a Table function from my SQL server
SELECT *
FROM "_EnerttObtApReelBassSys('20120504',4,1)"@SPAN_PROD
WHERE DateEffectiveDebut <= GetDate()
AND DateEffectiveFin > GetDate()
any help ?
Thnx951879 wrote:
I have a SP in SQL Server which will return a Result Set.
My requirement is to call that procedure in ORACLE using DB Link and insert that resultset(Data) in the temp table.First you need to setup Oracle to SQL Server connectivity. To do that you can either use HS - heterogeneous connectivity which comes for free or use Oracle Transparent Gateway which is not free. HS uses ODBC, so if your Oracle database in not on windows, you'll have to get ODBC SQL Server driver for Unix/Linux (e.g. from EasySoft). Since SQL Server selecting from table function syntax is different from Oracle's you will have to, if you use HS, to use DBMS_HS_PASSTHROUGH package. I never worked with Oracle Transparent Gateway to SQL Server, so I don't know if and how it supports selecting from SQL Server table function.
SY. -
Calling EJB via IIOP from Oracle database
Hi all,
I hope someone has a solution for calling an EJB from a Oracle PL/SQL
procedure.
We are using IIOP because T3 force weblogic.jar (approx 30MB) to be
loaded in the database. Unfortunately, Oracle refuse it with many
errors, and corrupt its own JVM !
so... IIOP
When we try that, we get the following error :
org.omg.CORBA.OBJ_ADAPTER: minor code: 1398079492 completed: No
at com.sun.corba.se.internal.corba.ORB.connect(ORB.java:1098)
at com.sun.corba.se.internal.corba.ORB.getServantIOR(ORB.java:1140)
at com.sun.corba.se.internal.corba.ClientDelegate.getServiceContexts(ClientDelegate.java:254)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:346)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:366)
at com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:198)
at com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:265)
at com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:188)
at com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:1461)
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:281)
at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:256)
at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:193)
at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:73)
at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:35)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:665)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:293)
at javax.naming.InitialContext.init(InitialContext.java:269)
at javax.naming.InitialContext.<init>(InitialContext.java:245)
at ch.xxx.ConnectEJB.getInitialContext(ConnectEJB.java:99)
The environments are Oracle 9.2 and WLS 7.0, Client and Server use JDK
1.3.1
The same test client is running without any error from a jvm outside
Oracle.
Thanks in advance for your help.
Chris.[email protected] (ChrisFR) writes:
Sounds like a question for Oracle.
andy
Hi all,
I hope someone has a solution for calling an EJB from a Oracle PL/SQL
procedure.
We are using IIOP because T3 force weblogic.jar (approx 30MB) to be
loaded in the database. Unfortunately, Oracle refuse it with many
errors, and corrupt its own JVM !
so... IIOP
When we try that, we get the following error :
org.omg.CORBA.OBJ_ADAPTER: minor code: 1398079492 completed: No
at com.sun.corba.se.internal.corba.ORB.connect(ORB.java:1098)
at com.sun.corba.se.internal.corba.ORB.getServantIOR(ORB.java:1140)
at com.sun.corba.se.internal.corba.ClientDelegate.getServiceContexts(ClientDelegate.java:254)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:346)
at com.sun.corba.se.internal.corba.ClientDelegate.createRequest(ClientDelegate.java:366)
at com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:198)
at com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:265)
at com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:188)
at com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:1461)
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:281)
at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:256)
at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:193)
at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:73)
at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:35)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:665)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:293)
at javax.naming.InitialContext.init(InitialContext.java:269)
at javax.naming.InitialContext.<init>(InitialContext.java:245)
at ch.xxx.ConnectEJB.getInitialContext(ConnectEJB.java:99)
The environments are Oracle 9.2 and WLS 7.0, Client and Server use JDK
1.3.1
The same test client is running without any error from a jvm outside
Oracle.
Thanks in advance for your help.
Chris.--
" .sigs are like your face - rarely seen by you and uglier than you think"
mail: [email protected] -
How to extract data from oracle database directly in to bi7.0 (net weaver)
how to extract data from oracle database directly in to bi7.0 (net weaver)? is it something do with EDI? can anybody explain me in detail?
Thanks
YorkYou can use UDConnect to get from Oracle database in to BW
<b>Data Transfer with UD Connect -</b>
http://help.sap.com/saphelp_nw04/helpdata/en/78/ef1441a509064abee6ffd6f38278fd/content.htm
<b>Prerequisites</b>
You have installed the SAP WAS J2EE Engine with BI Java components. You can find more information on this in the SAP BW installation guide on the SAP Service Marketplace at service.sap.com/instguides.
Hope it Helps
Chetan
@CP.. -
Error calling BLS from oracle database
Hi Experts,
We have a scenario in which we are calling BLS from oracle database using trigger. The call is made using the following URL:
http://<Host name>:50000/XMII/Runner?Transaction=<TRX_Path>&Material=MATNR&Pallet_id=PALLET&Plant=PLANT&Proc_order=PROC&Prodline=PROD&Quantity=QTY&Start_Date=DAT&Start_Time=TIM&Status=STAT&UOM=UOM1&User_name=USER&OutputParameter=*
This used to work fine in 11.5 but when we upgraded to 14.0 it is not working. We have maintained server details in \etc\host file.
We were getting error in file 'Error 1 Text.txt'. "A possible Cross-Frame Scripting attack has been prevented. Please contact your system administrator or refer to" this was the last error message. We checked this on SCN and based on the search results we have implemented SAP note 1651004 wherein setting in netweaver is required to be changed. After note was implemented we are getting another error text ('Error 2 Text.txt') "This will happen if the browser running the page tha". We tried a few ways but could not capture the full message coming.
Has anybody of faced similar problem? I would highly appreciate any hint which could help in solving this problem.
System Information:
NW 7.31 SP 10
Oracle 11.2.0.4
MII 14.0 SP5 patch 7
Regards,
DarshanHi Christian/Anushree,
I have now modified the URL by adding Illum login name and password:
http://<Host name>:50000/XMII/Runner?Transaction=<TRX_Path>&Material=MATNR&Pallet_id=PALLET&Plant=PLANT&Proc_order=PROC&…
When i run the url in browser it gives me the expected results but when i try to trigger it from Oracle i am still getting the error as below:
"<script>
var inPortalScript = false
var webpath = "/logon_ui_resources/"
</script>
<html>
<head>
<BASE target="_self">
<link rel=stylesheet href="/logon_ui_resources/css/ur/ur_ie5.css">
<title>User Management, SAP AG</title>
<script language="javascript">
var originWindowName=window.name;
window.name="logonAppPage";
function restoreWindow() {
try{
window.name=originWindowName;
} catch(ex){}
</script>
<script language="JavaScript">
function putFocus(formInst, elementInst) {
if (document.forms.length > 0) {
document.forms[formInst].elements[elementInst].focus();
function setValuesAutoCreation() {
var form = document.getElementById('logonForm');
form.j_username.value="";
form.j_password.value="";
form.automaticAccountCreation.value="true";
function submitForm() {
var form = document.getElementById('logonForm');
form.submit();
function clearEntries() {
document.logonForm.longUid.value="";
document.logonForm.password.value="";
function setFocusToFirstField() {
myform = document.logonForm;
try{
for (i=0; i<myform.length; i++) {
elem = myform.elements[i];
if (!elem.disabled) {
elemType = elem.type;
if (elemType=="text" || elemType=="password") {
if (!elem.readOnly) {
elem.focus();
break;
if (elemType=="select-one" || elemType=="select-multiple" || elemType=="checkbox" || elemType=="radio") {
elem.focus();
break;
} catch(ex){
function addTenantPrefix() {
return true;
</script>
</head>
<body class="urBdyStd" bgcolor="#F7F9FB" onLoad="setFocusToFirstField()" onUnload="restoreWindow()">
Thanks,
Darshan
<script language="JavaScript">
var blockPage = false;
</script>
<script language="JavaScript">
try {
if (top.document.domain != self.document.domain) {
blockPage = true;
} catch (error) {
// This will happen if the browser running the page tha" -
How to call web services from oracle database 10g
Hi all ,
How can i call web services from oracle database 10g ?
thanks ...abdou123 wrote:
but how can i get complex result
for example
i pass input parameter like National Id Number
and get the person details ( name , age , date of birth , ............ ) .Basic approach to web services using UTL_HTTP explained in {message:id=10448611}.
An example of using a pipeline table function as a data transformation process (turning web data into rows and columns) in {message:id=10158148}. -
Calling Java programs from Oracle Stored Procedure
Is it possible to call Java programs from Oracle stored procs? If possible Can this be used to exchange data from other applications? Is there a better method/feature in oracle for doing data exchange with other apps?
If what you mean by Oracle stored procedures is pl/sql then yes.
You can create a "wrapper" this way:
CREATE OR REPLACE FUNCTION xmlXform
in_mapUrl IN VARCHAR2,
in_inputUrl IN VARCHAR2
RETURN VARCHAR2
AS
LANGUAGE JAVA NAME
'com.yourcompany.xml2any.xform(java.lang.String,java.lang.String)
RETURN java.lang.String';
Then load the java as:
loadjava -user youruser/youruserpasswd -resolve -verbose lib/xmlparserv2.jar classes/com/yourcompany/xform.class classes/com/yourcompany/xml2any.class
The java, given the correct permissions, can do anything java can do including communicate with outside applications.
Is this the "best" way... depends on what you are trying to accomplish. -
Problem calling XML Report Publisher from Oracle Reports
Hi,
I'm facing a problem in calling XML Report Publisher from Oracle Reports.
Basically, I'm trying to customise Dunning Letter program. The program which is submitted calls another program. I have customised the second program and added a call to a stored procedure which in turn calls XML Report Publisher.I have created a template and attached it to the second program as well.
The procedure code is as follows.
v_request_id := FND_REQUEST.SUBMIT_REQUEST(application => 'AR'
,program => 'ARDLP_NON_SRS'
,description => 'Dunning Letter Print from Dunning Letter Generate'
,sub_request => FALSE
l_status := fnd_concurrent.WAIT_FOR_REQUEST
( REQUEST_ID => v_request_id,
INTERVAL => 15,
MAX_WAIT => 180,
PHASE => l_phase,
STATUS => l_status_code,
DEV_PHASE => l_dev_phase,
DEV_STATUS => l_dev_status,
MESSAGE => l_message );
v_xml_req_id := FND_REQUEST.submit_request(application => 'XDO',
program => 'XDOREPPB',
argument1 => v_request_id,
argument2 => 'FLS DE AR Dunning Letter Print - German',
argument3 => 603, -- changed 665 -- was 551,
argument4 => NULL,
argument5 => 'N',
argument6 => 'RTF',
argument7 => 'PDF');
Now, there are two problems I'm facing...
1. when the second program('Dunning Letter Print from Dunning Letter Generate') gets called it executes this procedure ... logically the 'Dunning Letter Print from Dunning Letter Generate' should get called twice ... second time from the procedure. Its getting called multiple times .. as many as 15 - 20 times.
2. The Xml Report Publisher program ultimately gets called but its erroring out with the following error:
java.sql.SQLException: No corresponding LOB data found :SELECT L.FILE_DATA FILE_DATA, DBMS_LOB.GETLENGTH(L.FILE_DATA) FILE_LENGTH, L.LANGUAGE LANGUAGE, L.TERRITORY TERRITORY, B.DEFAULT_LANGUAGE DEFAULT_LANGUAGE, B.DEFAULT_TERRITORY DEFAULT_TERRITORY,B.TEMPLATE_TYPE_CODE TEMPLATE_TYPE_CODE, B.USE_ALIAS_TABLE USE_ALIAS_TABLE, B.START_DATE START_DATE, B.END_DATE END_DATE, B.TEMPLATE_STATUS TEMPLATE_STATUS, B.USE_ALIAS_TABLE USE_ALIAS_TABLE, B.DS_APP_SHORT_NAME DS_APP_SHORT_NAME, B.DATA_SOURCE_CODE DATA_SOURCE_CODE, L.LOB_TYPE LOB_TYPE FROM XDO_LOBS L, XDO_TEMPLATES_B B WHERE (L.LOB_TYPE = 'TEMPLATE' OR L.LOB_TYPE = 'MLS_TEMPLATE') AND L.APPLICATION_SHORT_NAME= :1 AND L.LOB_CODE = :2 AND L.APPLICATION_SHORT_NAME = B.APPLICATION_SHORT_NAME AND L.LOB_CODE = B.TEMPLATE_CODE AND ( (L.LANGUAGE = :3 AND L.TERRITORY = :4 ) OR (L.LANGUAGE = :5 AND L.TERRITORY = :6) OR (L.LANGUAGE= B.DEFAULT_LANGUAGE AND L.TERRITORY= B.DEFAULT_TERRITORY ) )
I have checked from database that the XDO_LOBS/ XDO_TEMPLATES_B table has corresponding registration data.
I don't know what's creating the problem.
If anyone has customised the Dunning Letter program before or having any idea about this problem, please help me out ..
Thankssatrajit,
Now I am getting the same error you got, Can you please tell me the solution you found?.
XML Report Publisher 5.0
Updating request description
Waiting for XML request
Retrieving XML request information
Preparing parameters
Process template
--XDOException
java.sql.SQLException: No corresponding LOB data found :SELECT L.FILE_DATA FILE_DATA, DBMS_LOB.GETLENGTH(L.FILE_DATA) FILE_LENGTH, L.LANGUAGE LANGUAGE, L.TERRITORY TERRITORY, B.DEFAULT_LANGUAGE DEFAULT_LANGUAGE, B.DEFAULT_TERRITORY DEFAULT_TERRITORY,B.TEMPLATE_TYPE_CODE TEMPLATE_TYPE_CODE, B.USE_ALIAS_TABLE USE_ALIAS_TABLE, B.START_DATE START_DATE, B.END_DATE END_DATE, B.TEMPLATE_STATUS TEMPLATE_STATUS, B.USE_ALIAS_TABLE USE_ALIAS_TABLE FROM XDO_LOBS L, XDO_TEMPLATES_B B WHERE L.LOB_TYPE = :1 AND L.APPLICATION_SHORT_NAME= :2 AND L.LOB_CODE = :3 AND L.APPLICATION_SHORT_NAME = B.APPLICATION_SHORT_NAME AND L.LOB_CODE = B.TEMPLATE_CODE AND ( (L.LANGUAGE = :4 AND L.TERRITORY = :5 ) OR (L.LANGUAGE = :6 AND L.TERRITORY = :7) OR (L.LANGUAGE= B.DEFAULT_LANGUAGE AND L.TERRITORY= B.DEFAULT_TERRITORY ) )
at oracle.apps.xdo.oa.schema.server.TemplateInputStream.initStream(TemplateInputStream.java:309)
at oracle.apps.xdo.oa.schema.server.TemplateInputStream.<init>(TemplateInputStream.java:187)
at oracle.apps.xdo.oa.schema.server.TemplateHelper.getTemplateFile(TemplateHelper.java:776)
at oracle.apps.xdo.oa.schema.server.TemplateHelper.processTemplate(TemplateHelper.java:1269)
at oracle.apps.xdo.oa.cp.JCP4XMLPublisher.runProgram(JCP4XMLPublisher.java:807)
at oracle.apps.fnd.cp.request.Run.main(Run.java:148) -
How to send a mail automatically based on a date from ORACLE database
Hi,
I want to send a mail automatically based on a date from ORACLE database.
Please help me.
thanks
--Saraprograms are available on net to send mail directly from oracle ie procedure s in oracle sending mails
-
Call a web services from oracle forms 10
I have to call a web services from oracle forms.
The version of the database is oracle 11gr2. the version of the forms is 10.1.2.0.2.
I allready did the proxy creation and the import class within forms.
I have 2 questions:
1.
I created the following procedure:
PROCEDURE call_WS IS
vobject1 ORA_JAVA.JOBJECT;
vobject2 ORA_JAVA.JOBJECT;
BEGIN
vobject1 := WSEvaluarReglaCondicionComerci.new();
vobject2 := WSEvaluarReglaCondicionComerci.listarValoresAtributoEvento(vobject1, 702, 2217, null, null, null);
END;
the function I calling:
FUNCTION listarValoresAtributoEvento(
obj ORA_JAVA.JOBJECT,
a0 ORA_JAVA.JOBJECT,
a1 ORA_JAVA.JOBJECT,
a2 ORA_JAVA.JOBJECT,
a3 VARCHAR2,
a4 ORA_JAVA.JOBJECT) RETURN ORA_JAVA.JOBJECT;
Note that the parameters is ORA_JAVA_JOBJECT and I need to send numbers. I understand that when I import the classes, because in the WS those parameters are defined as BigDecimal, Forms understand them as java object but when I compile it reports the error: "numero o tipo de argumento erroneo al llamar..." type error.
So the question is, how Cast the numbers to Java Object to send them.
I have read in a web page that one option is to change in the web service the type of the parameters but that is not an option.
2.
The WS returns a super big XML as answer, so how I can parse the result into an Object type?...
The object structure is:
TYPE opciones_obj AS OBJECT
(strindice VARCHAR2 (4000),
nombrecompleto VARCHAR2 (4000),
nombre VARCHAR2 (4000),
strtipodato VARCHAR2 (4000),
codigoopcion NUMBER,
floatval FLOAT,
strtipo VARCHAR2 (4000),
strval VARCHAR2 (4000));
and the tags to extract is:
COLUMNS strindice VARCHAR2 (4000)
PATH 'ns2:mapEntry[ns2:key="strIndice"]/ns2:value',
nombrecompleto VARCHAR2 (4000)
PATH 'ns2:mapEntry[ns2:key="nombreCompleto"]/ns2:value',
nombre VARCHAR2 (4000)
PATH 'ns2:mapEntry[ns2:key="nombre"]/ns2:value',
strtipodato VARCHAR2 (4000)
PATH 'ns2:mapEntry[ns2:key="strTipoDato"]/ns2:value',
codigoopcion NUMBER
PATH 'ns2:mapEntry[ns2:key="codigoOpcion"]/ns2:value',
floatval FLOAT
PATH 'ns2:mapEntry[ns2:key="floatVal"]/ns2:value',
strtipo VARCHAR2 (4000)
PATH 'ns2:mapEntry[ns2:key="strTipo"]/ns2:value',
strval VARCHAR2 (4000)
PATH 'ns2:mapEntry[ns2:key="strVal"]/ns2:value') x;
xquery / xmltype aparently is not an option because the xml is too big.
I will appreciate your answers.
Thanks.
Edited by: user13058213 on 26-ene-2012 16:02i created jar file to call it from forms
Could you be a little bit less vague about what you exactly did?
Anyway; see here http://bit.ly/10VVoMR
cheers -
Sending a mail from oracle database
Hi,
I have a requirement to send a mail from oracle database.I use UTL_TCP package for this.Although my procedure is executed successfully,i dont get the mails in my inbox.Please help me to figure out a solution.
Thanks in advance....Hi, you must use UTL_SMTP package for send emails, it has more performance and features for debug. You must look the next code, this is a example for send emails.
DECLARE
c UTL_SMTP.CONNECTION;
PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS
BEGIN
UTL_SMTP.WRITE_DATA(c, name || ': ' || header || UTL_TCP.CRLF);
END;
BEGIN
c := UTL_SMTP.OPEN_CONNECTION('smtp-server.acme.com');
UTL_SMTP.HELO(c, 'foo.com');
UTL_SMTP.MAIL(c, '[email protected]');
UTL_SMTP.RCPT(c, '[email protected]');
UTL_SMTP.OPEN_DATA(c);
send_header('From', '"Sender" <[email protected]>');
send_header('To', '"Recipient" <[email protected]>');
send_header('Subject', 'Hello');
UTL_SMTP.WRITE_DATA(c, UTL_TCP.CRLF || 'Hello, world!');
UTL_SMTP.CLOSE_DATA(c);
UTL_SMTP.QUIT(c);
EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
BEGIN
UTL_SMTP.QUIT(c);
EXCEPTION
WHEN UTL_SMTP.TRANSIENT_ERROR OR UTL_SMTP.PERMANENT_ERROR THEN
NULL; -- When the SMTP server is down or unavailable, we don't have
-- a connection to the server. The QUIT call will raise an
-- exception that we can ignore.
END;
raise_application_error(-20000,
'Failed to send mail due to the following error: ' || sqlerrm);
END;
Also review the next link for get more information about the UTL_SMTP packege.
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_smtp.htm#sthref15587
Regards. -
REP-0159 when run_product from oracle database
Hi,
I can`t open report from oracle database. I have this products (Windows NT 4):
Oracle8i Enterprise Edition Release
8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
Report Builder 6.0.8.8.3
ORACLE Server Release 8.0.6.0.0
Forms [32 Bit] Version 6.0.8.8.0
(Production)
This is the code in the forms:
____DECLARE
____ vs_program_name VARCHAR2(30);
____ pl_id PARAMLIST;
____ pl_name VARCHAR2(60);
____BEGIN
____ pl_name := 'Unloading';
____ pl_id := GET_PARAMETER_LIST(pl_name);
____ IF NOT ID_NULL(pl_id) THEN
____ DESTROY_PARAMETER_LIST(pl_id);
____ END IF;
____ pl_id := CREATE_PARAMETER_LIST(pl_name);
____ IF ID_NULL(pl_id) THEN
____ Message('Error ...!');
____ ELSE
____ vs_program_name := 'victor';
____ ADD_PARAMETER
____ (pl_id, 'pv_admission_nbr',
____ TEXT_PARAMETER, 'hola');
____ Run_Product(REPORTS, vs_program_name, ____ SYNCHRONOUS, RUNTIME, DB, pl_id);
____ END IF;
____end;
This is the error message in server report:
REP-0159: Syntax error on command line.
I need help, any idea?<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Randall Roberts ([email protected]):
If the Reports runtime process actually has been launched, there will be a button for it on your taskbar. Click the button and a little empty window opens. But from the menu bar in the window you can select an option that shows the actual error generated by reports runtime.<HR></BLOCKQUOTE>
Thanks!
This is the error message:
Error submitting report [Sun May 20 20:12:59 2001] ...
REP-0159: Syntax error on command line.
and this is the form code:
DECLARE
vs_program_name VARCHAR2(30);
pl_id PARAMLIST;
pl_name VARCHAR2(60);
BEGIN
pl_name := 'Unloading';
pl_id := GET_PARAMETER_LIST(pl_name);
IF NOT ID_NULL(pl_id) THEN
DESTROY_PARAMETER_LIST(pl_id);
END IF;
pl_id := CREATE_PARAMETER_LIST(pl_name);
IF ID_NULL(pl_id) THEN
Message('Error to create parameters list, please call support...!');
ELSE
vs_program_name := 'victor';
ADD_PARAMETER(pl_id, 'pv_admission_nbr', TEXT_PARAMETER, 'hola');
Run_Product(REPORTS, vs_program_name, SYNCHRONOUS, RUNTIME, DB, pl_id,null);
END IF;
end;
Can you help me?
null -
ODSI service using function from oracle database
Hi ,
I need to create a ODSI service using function from oracle database.
I am not sure how to create a Physical Layer and Logical Layer using the function fron db.
Kindly provide a sample . I need It ASAP. Thanks in advance.
Regards,
TaraHere's what you do.
Create New Physical Data Service -> Relational -> MyDataSource -> Table -> SomeTable ... finish the wizard.
So now you have a Physical Data Service that represents a database table.
Create New Physcial Data Service -> Relational -> MyDataSource (the same one as above) -> Database Function -> Enter UPPER for the Function name, enter MyUpper fro the XQuery Function. Finish the Wizard (use something like MyUpperDs for the ds name).
Open MyUpperDs. Right-click -> Edit Signature on MyUpper. Change the ReturnType to string, change the Occurrence to Zero or One.
Add a parameter, change the Type to string, change the Occurrence to Zero or One.
Save.
Now, open the first ds you made SomeTable.ds (whatever). Run it in the test view.
Go to the Overview tab. Create New Operation. Give it the name SOMETABLE_UPPER. Save it.
Go to the Query Map tab, open SOMETABLE_UPPER. Drag and drop SOMETABLE (the system-generated function into the mapper. It will show a dotted line from SOMETABLE to the Return. Now drag-and-drop the SOMETABLE to the top-level element of the return type, it will show solid lines from each element in SOMETABLE to each element in the return type.
Now, drag-and-drop MyUpperDs.MyUpper into the Query Mapper. Edit the source, find where it added the line "for $x in myd:MyUpper()" and delete that line.
Change a line that simply returns a value to use your function, for example, change
<FIRST_NAME>{fn:data($CUSTOMER/FIRST_NAME)}</FIRST_NAME>
to
<FIRST_NAME>{myd:MyUpper(fn:data($CUSTOMER/FIRST_NAME))}</FIRST_NAME>
Click on the Plan tab and Show Query Plan. You will see that in the query plan, it is using the database UPPER function where you specified MyUpper.
Go to the Test View and run it.
I used the RTLCUSTOMER table in cgDataSource
xquery version "1.0" encoding "UTF-8";
(::pragma xds <x:xds xmlns:x="urn:annotations.ld.bea.com" targetType="t:CUSTOMER" xmlns:t="ld:physical/CUSTOMER">
<creationDate>2010-10-14T13:09:54</creationDate>
<relationalDB name="cgDataSource" providerId="Pointbase"/>
<field xpath="CUSTOMER_ID" type="xs:string">
<extension nativeXpath="CUSTOMER_ID" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="32" nativeFractionalDigits="0" nativeKey="true"/>
<properties nullable="false"/>
</field>
<field xpath="FIRST_NAME" type="xs:string">
<extension nativeXpath="FIRST_NAME" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="64" nativeFractionalDigits="0"/>
<properties nullable="false"/>
</field>
<field xpath="LAST_NAME" type="xs:string">
<extension nativeXpath="LAST_NAME" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="64" nativeFractionalDigits="0"/>
<properties nullable="false"/>
</field>
<field xpath="CUSTOMER_SINCE" type="xs:date">
<extension nativeXpath="CUSTOMER_SINCE" nativeTypeCode="91" nativeType="DATE" nativeSize="10" nativeFractionalDigits="0"/>
<properties nullable="false"/>
</field>
<field xpath="EMAIL_ADDRESS" type="xs:string">
<extension nativeXpath="EMAIL_ADDRESS" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="32" nativeFractionalDigits="0"/>
<properties nullable="false"/>
</field>
<field xpath="TELEPHONE_NUMBER" type="xs:string">
<extension nativeXpath="TELEPHONE_NUMBER" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="32" nativeFractionalDigits="0"/>
<properties nullable="false"/>
</field>
<field xpath="SSN" type="xs:string">
<extension nativeXpath="SSN" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="16" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<field xpath="BIRTH_DAY" type="xs:date">
<extension nativeXpath="BIRTH_DAY" nativeTypeCode="91" nativeType="DATE" nativeSize="10" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<field xpath="DEFAULT_SHIP_METHOD" type="xs:string">
<extension nativeXpath="DEFAULT_SHIP_METHOD" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="16" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<field xpath="EMAIL_NOTIFICATION" type="xs:short">
<extension nativeXpath="EMAIL_NOTIFICATION" nativeTypeCode="5" nativeType="SMALLINT" nativeSize="5" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<field xpath="NEWS_LETTTER" type="xs:short">
<extension nativeXpath="NEWS_LETTTER" nativeTypeCode="5" nativeType="SMALLINT" nativeSize="5" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<field xpath="ONLINE_STATEMENT" type="xs:short">
<extension nativeXpath="ONLINE_STATEMENT" nativeTypeCode="5" nativeType="SMALLINT" nativeSize="5" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<field xpath="LOGIN_ID" type="xs:string">
<extension nativeXpath="LOGIN_ID" nativeTypeCode="12" nativeType="VARCHAR" nativeSize="50" nativeFractionalDigits="0"/>
<properties nullable="true"/>
</field>
<key name="CUSTOMER_0_SYSTEMNAMEDCONSTRAINT__PRIMARYKEY" type="cus:CUSTOMER_KEY" inferredSchema="true" xmlns:cus="ld:physical/CUSTOMER"/>
</x:xds>::)
declare namespace myd= "ld:physical/MyDs";
declare namespace f1 = "ld:physical/CUSTOMER";
import schema namespace t1 = "ld:physical/CUSTOMER" at "ld:physical/schemas/CUSTOMER.xsd";
import schema "ld:physical/CUSTOMER" at "ld:physical/schemas/CUSTOMER_KEY.xsd";
(::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" visibility="public" kind="read" isPrimary="false" nativeName="CUSTOMER" nativeLevel2Container="RTLCUSTOMER" style="table">
<nonCacheable/> </f:function>::)
declare function f1:CUSTOMER() as schema-element(t1:CUSTOMER)* external;
(::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" visibility="public" kind="create" isPrimary="true" nativeName="CUSTOMER" nativeLevel2Container="RTLCUSTOMER" style="table">
<nonCacheable/> </f:function>::)
declare procedure f1:createCUSTOMER($p as element(t1:CUSTOMER)*)as schema-element(t1:CUSTOMER_KEY)* external;
(::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" visibility="public" kind="update" isPrimary="true" nativeName="CUSTOMER" nativeLevel2Container="RTLCUSTOMER" style="table">
<nonCacheable/> </f:function>::)
declare procedure f1:updateCUSTOMER($p as changed-element(t1:CUSTOMER)*) as empty() external;
(::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" visibility="public" kind="delete" isPrimary="true" nativeName="CUSTOMER" nativeLevel2Container="RTLCUSTOMER" style="table">
<nonCacheable/> </f:function>::)
declare procedure f1:deleteCUSTOMER($p as element(t1:CUSTOMER)*) as empty() external;
(::pragma function <f:function kind="read" visibility="public" isPrimary="false" xmlns:f="urn:annotations.ld.bea.com"/>::)
declare function f1:CUSTOMER_UPPER() as element(f1:CUSTOMER)*{
for $CUSTOMER in f1:CUSTOMER()
return
<t1:CUSTOMER>
<CUSTOMER_ID>{fn:data($CUSTOMER/CUSTOMER_ID)}</CUSTOMER_ID>
<FIRST_NAME>{myd:MyUpper(fn:data($CUSTOMER/FIRST_NAME))}</FIRST_NAME>
<LAST_NAME>{fn:data($CUSTOMER/LAST_NAME)}</LAST_NAME>
<CUSTOMER_SINCE>{fn:data($CUSTOMER/CUSTOMER_SINCE)}</CUSTOMER_SINCE>
<EMAIL_ADDRESS>{fn:data($CUSTOMER/EMAIL_ADDRESS)}</EMAIL_ADDRESS>
<TELEPHONE_NUMBER>{fn:data($CUSTOMER/TELEPHONE_NUMBER)}</TELEPHONE_NUMBER>
<SSN?>{fn:data($CUSTOMER/SSN)}</SSN>
<BIRTH_DAY?>{fn:data($CUSTOMER/BIRTH_DAY)}</BIRTH_DAY>
<DEFAULT_SHIP_METHOD?>{fn:data($CUSTOMER/DEFAULT_SHIP_METHOD)}</DEFAULT_SHIP_METHOD>
<EMAIL_NOTIFICATION?>{fn:data($CUSTOMER/EMAIL_NOTIFICATION)}</EMAIL_NOTIFICATION>
<NEWS_LETTTER?>{fn:data($CUSTOMER/NEWS_LETTTER)}</NEWS_LETTTER>
<ONLINE_STATEMENT?>{fn:data($CUSTOMER/ONLINE_STATEMENT)}</ONLINE_STATEMENT>
<LOGIN_ID?>{fn:data($CUSTOMER/LOGIN_ID)}</LOGIN_ID>
</t1:CUSTOMER>
xquery version "1.0" encoding "UTF-8";
(::pragma xfl <x:xfl xmlns:x="urn:annotations.ld.bea.com">
<creationDate>2010-10-14T13:10:45</creationDate>
<customNativeFunctions>
<relational>
<dataSource>cgDataSource</dataSource>
</relational>
</customNativeFunctions>
</x:xfl>::)
declare namespace f1 = "ld:physical/MyDs";
(::pragma function <f:function visibility="protected" kind="library" isPrimary="false" nativeName="UPPER" xmlns:f="urn:annotations.ld.bea.com">
<nonCacheable/>
</f:function>::)
declare function f1:MyUpper($arg0 as xs:string?) as xs:string? external;
<cus:CUSTOMER xmlns:cus="ld:physical/CUSTOMER">
<CUSTOMER_ID>CUSTOMER1</CUSTOMER_ID>
<FIRST_NAME>JACK</FIRST_NAME>
<LAST_NAME>Black</LAST_NAME>
<CUSTOMER_SINCE>2001-10-01</CUSTOMER_SINCE>
<EMAIL_ADDRESS>[email protected]</EMAIL_ADDRESS>
<TELEPHONE_NUMBER>2145134119</TELEPHONE_NUMBER>
<SSN>295-13-4119</SSN>
<BIRTH_DAY>1970-01-01</BIRTH_DAY>
<DEFAULT_SHIP_METHOD>AIR</DEFAULT_SHIP_METHOD>
<EMAIL_NOTIFICATION>1</EMAIL_NOTIFICATION>
<NEWS_LETTTER>0</NEWS_LETTTER>
<ONLINE_STATEMENT>1</ONLINE_STATEMENT>
</cus:CUSTOMER>
. -
Can we call a bdc program from a report?how
hi
experts can u help me for thisHi
Yes, You can call a BDC program from Report.
see the sample report in which it is used
REPORT zm_reservation_alert
NO STANDARD PAGE HEADING
MESSAGE-ID zm_msg.
D A T A B A S E T A B L E S D E C L A R A T I O N
T Y P E S D E C L A R A T I O N S
Reservations Main Structure
TYPES: BEGIN OF s_res,
rsnum TYPE rsnum, " Reservation No
rspos TYPE rspos, " Item No
usnam TYPE usnam, " User Name
bwart TYPE bwart, " Movement Type
aufnr TYPE aufnr, " Order Number
rsart TYPE rsart, " Record Type
bdart TYPE bdart, " Reservation Type
matnr TYPE matnr, " Material No
bdter TYPE bdter, " Req Date
menge TYPE menge_d, " Quantity
kostl TYPE kostl, " Cost Center
usrid TYPE sysid, " User ID
END OF s_res.
Output Main Structure
TYPES: BEGIN OF s_rep,
usnam TYPE usnam, " User Name
rsnum TYPE rsnum, " Reservation No
rspos TYPE rspos, " Item No
matnr TYPE matnr, " Material No
bdter TYPE bdter, " Req Date
menge TYPE menge_d, " Quantity
kostl TYPE kostl, " Cost Center
aufnr TYPE aufnr, " Order Number
END OF s_rep.
User Dept Details
TYPES: BEGIN OF s_dept,
pernr TYPE persno, " Personal No
usrid TYPE sysid, " User ID
orgeh TYPE orgeh, " Orgn Unit
orgtx TYPE orgtx, " Dept Name
END OF s_dept.
For Send Mail Purpose
DATA : i_doc_data LIKE sodocchgi1.
DATA : BEGIN OF i_pack_list OCCURS 0.
INCLUDE STRUCTURE sopcklsti1.
DATA : END OF i_pack_list.
DATA : BEGIN OF i_receivers OCCURS 0.
INCLUDE STRUCTURE somlreci1.
DATA : END OF i_receivers.
DATA : BEGIN OF i_contents OCCURS 0.
INCLUDE STRUCTURE solisti1.
DATA : END OF i_contents.
DATA : BEGIN OF i_header OCCURS 0.
INCLUDE STRUCTURE solisti1.
DATA : END OF i_header.
DATA : BEGIN OF i_att OCCURS 0.
INCLUDE STRUCTURE solisti1.
DATA : END OF i_att.
Internal table for bdcdata
DATA : it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
Internal table to handle messages
DATA : it_messages LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
D A T A D E C L A R A T I O N S
DATA: gv_lines TYPE sy-index, " Total Lines int Table
gv_days TYPE i, " Difference Days
gv_date TYPE sy-datum, " Date
gv_date1 TYPE sy-datum, " Date
gv_date2 TYPE sy-datum, " Date
gv_text(85), " Text Field
gv_mesg(70), " Error Messages
gv_bdc, " BDC Flag
gv_flag TYPE i, " Flag
gv_ernam TYPE ernam. " User ID
C O N S T A N T S D E C L A R A T I O N S
CONSTANTS: c_x VALUE 'X', " Flag
c_endda TYPE endda VALUE '99991231'. " Date
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_res TYPE STANDARD TABLE OF s_res WITH HEADER LINE, " Reservns
i_dept TYPE STANDARD TABLE OF s_dept WITH HEADER LINE, " Dept
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE. " Output
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
Process data
PERFORM process_data.
*& Form fetch_data
Fetching the Reservations related data from Database Tables
FORM fetch_data .
CLEAR: gv_date, gv_date1, gv_date2.
gv_date = sy-datum.
gv_date1 = sy-datum - 10.
gv_date2 = sy-datum + 10.
CLEAR i_res.
REFRESH i_res.
SELECT a~rsnum " Reservation No.
b~rspos " Reservation Item
a~usnam " User Name
a~bwart " Movement Type
a~aufnr " Order Number
b~rsart " Record Type
b~bdart " Reservation Type
b~matnr " Material No
b~bdter " Req Date
INTO TABLE i_res
FROM rkpf AS a JOIN resb AS b
ON arsnum = brsnum
WHERE ( b~bdter BETWEEN gv_date1 AND gv_date2 ) AND
b~xloek EQ ' '.
SORT i_res BY rsnum rspos.
DELETE ADJACENT DUPLICATES FROM i_res COMPARING matnr.
Add userid into the i_usr int table
LOOP AT i_res.
i_res-usrid = i_res-usnam.
MODIFY i_res INDEX sy-tabix.
ENDLOOP.
IF NOT i_res[] IS INITIAL.
Get the User Dept Name
CLEAR i_dept.
REFRESH i_dept.
SELECT a~pernr " Personal No
a~usrid " User ID
b~orgeh " Orgn Unit
c~orgtx " Dept Name
INTO TABLE i_dept
FROM pa0105 AS a JOIN pa0001 AS b
ON apernr = bpernr JOIN t527x AS c
ON borgeh = corgeh
FOR ALL ENTRIES IN i_res
WHERE a~usrid = i_res-usrid AND
a~endda EQ c_endda AND
b~endda EQ c_endda.
ENDIF.
SORT i_dept BY pernr.
DELETE ADJACENT DUPLICATES FROM i_dept COMPARING pernr.
Move the Creator of Reservation to a diff table
LOOP AT i_res.
MOVE-CORRESPONDING i_res TO i_rep.
APPEND i_rep.
CLEAR i_rep.
ENDLOOP.
SORT i_rep BY usnam rsnum rspos.
ENDFORM. " Fetch_Data
*& Form process_data
Process the Reservations related data for Expiry Date
FORM process_data .
DATA: lv_date1 LIKE sy-datum,
lv_date2 LIKE sy-datum,
lv_date3(10),
lv_menge(13),
lv_tabix LIKE sy-tabix.
LOOP AT i_rep.
CLEAR: gv_days, gv_text, lv_date1, lv_date2,lv_date3.
lv_tabix = sy-tabix.
AT NEW usnam.
Populate the Contents Table
CLEAR i_att.
REFRESH i_att.
i_att = 'Reservations Reminder'(014).
APPEND i_att.
i_att = '----
APPEND i_att.
i_att-line = ' '.
APPEND i_att.
READ TABLE i_dept WITH KEY usrid = i_rep-usnam.
CONCATENATE 'Name:'(003) i_rep-usnam 'Dept:'(015) i_dept-orgtx
INTO i_att-line SEPARATED BY space.
APPEND i_att.
i_att-line = ' '.
APPEND i_att.
i_att = 'Please find the List of expiring Reservations'(004).
APPEND i_att.
i_att-line = ' '.
APPEND i_att.
CONCATENATE '--' '' '--
' INTO
i_att-line SEPARATED BY space.
APPEND i_att.
CONCATENATE 'Reservation #'(006) 'Material #'(007) ' Quantity'(002)
'Due Date'(008) 'Work Center/CC'(005) INTO
i_att-line SEPARATED BY space.
APPEND i_att.
CONCATENATE '--' '' '--
' INTO
i_att-line SEPARATED BY space.
APPEND i_att.
i_att-line = ' '.
APPEND i_att.
ENDAT.
gv_days = i_rep-bdter - gv_date.
lv_date1 = i_rep-bdter + 5.
lv_date2 = i_rep-bdter + 10.
MOVE i_rep-menge TO lv_menge.
WRITE i_rep-bdter TO lv_date3.
IF gv_days = 10.
IF i_rep-aufnr <> space.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-aufnr 'is due for 10 days. Please collect'(009)
INTO gv_text SEPARATED BY space.
ELSE.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-kostl 'is due for 10 days. Please collect'(009)
INTO gv_text SEPARATED BY space.
ENDIF.
i_att-line = gv_text.
APPEND i_att.
CLEAR i_att.
CLEAR gv_text.
ENDIF.
IF gv_days = 5.
IF i_rep-aufnr <> space.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-aufnr 'is due for 5 days. Please collect'(010)
INTO gv_text SEPARATED BY space.
ELSE.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-kostl 'is due for 5 days. Please collect'(010)
INTO gv_text SEPARATED BY space.
ENDIF.
i_att-line = gv_text.
APPEND i_att.
CLEAR i_att.
CLEAR gv_text.
ENDIF.
IF gv_date = lv_date1.
IF i_rep-aufnr <> space.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-aufnr 'is getting cancelled on'(011) lv_date2
INTO gv_text SEPARATED BY space.
ELSE.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-kostl 'is getting cancelled on'(011) lv_date2
INTO gv_text SEPARATED BY space.
ENDIF.
i_att-line = gv_text.
APPEND i_att.
CLEAR i_att.
CLEAR gv_text.
ENDIF.
IF gv_date = lv_date2.
IF i_rep-aufnr <> space.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-aufnr 'is being cancelled'(012)
INTO gv_text SEPARATED BY space.
ELSE.
CONCATENATE i_rep-rsnum i_rep-matnr lv_menge lv_date3
i_rep-kostl 'is being cancelled'(012)
INTO gv_text SEPARATED BY space.
ENDIF.
i_att-line = gv_text.
APPEND i_att.
CLEAR i_att.
CLEAR gv_text.
Mark the Reservation Item 'DELETED' using BDC.
UPDATE resb SET xloek = c_x.
PERFORM delete_item_resb.
ENDIF.
AT END OF usnam.
IF ( gv_days = 10 OR gv_days = 5 OR gv_date = lv_date1 OR
gv_date = lv_date2 ).
Read the User who creates the Reservn and send a mail alert to him
CLEAR : i_receivers,gv_ernam.
REFRESH: i_receivers.
READ TABLE i_rep INDEX lv_tabix.
gv_ernam = i_rep-usnam.
IF gv_ernam <> space.
Send mail Alert to PR Creator(SAP inbox)
PERFORM send_alert_data.
Send Mail to External Mail ID of the SAP USER
PERFORM send_mail_external.
ENDIF.
ENDIF.
ENDAT.
ENDLOOP.
ENDFORM. " Process_data
*& Form delete_item_resb
Set the Deletion Indicator for the Res. Item in RESB
FORM delete_item_resb.
gv_bdc = 'N'.
Perform to fill it_bdcdata.
PERFORM fill_it_bdcdata.
Call the Transaction MB22
CALL TRANSACTION 'MB22' USING it_bdcdata MODE 'A' UPDATE 'S'
MESSAGES INTO it_messages.
IF sy-subrc <> 0.
gv_flag = 1.
If error occurs in transaction mode run bdc session for that data
PERFORM bdc_process.
ENDIF.
Handles error messages
PERFORM error_messages.
CLEAR : it_bdcdata, it_messages.
REFRESH : it_bdcdata, it_messages.
IF gv_bdc = 'O'.
close bdc if it is open
PERFORM close_bdc.
ENDIF.
ENDFORM. "delete_item_resb
*& Form FILL_IT_BDCDATA
Filling Bdcdata structure with data
FORM fill_it_bdcdata.
PERFORM bdc_dynpro USING 'SAPMM07R' '0560'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM07M-RSPOS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RM07M-RSNUM'
i_rep-rsnum.
PERFORM bdc_field USING 'RM07M-RSPOS'
i_rep-rspos.
PERFORM bdc_dynpro USING 'SAPMM07R' '0510'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RESB-XLOEK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RESB-XLOEK'
c_x.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_dynpro USING 'SAPMM07R' '0510'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RESB-ERFMG'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDFORM. " FILL_IT_BDCDATA
*& Form BDC_DYNPRO
Filling the it_bdcdata table with program name & screen number
FORM bdc_dynpro USING program LIKE bdcdata-program
dynpro LIKE bdcdata-dynpro.
it_bdcdata-program = program.
it_bdcdata-dynpro = dynpro.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
CLEAR it_bdcdata.
ENDFORM. " BDC_DYNPRO
*& Form BDC_FIELD
Filling it_bdcdata with field name and field value
FORM bdc_field USING fnam LIKE bdcdata-fnam
fval.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
APPEND it_bdcdata.
CLEAR it_bdcdata.
ENDFORM. " BDC_FIELD
*& Form ERROR_MESSAGES
Displaying error messages
FORM error_messages.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = sy-langu
IMPORTING
msg = gv_mesg
EXCEPTIONS
not_found = 1
OTHERS = 2.
LOOP AT it_messages WHERE msgtyp = 'E'.
WRITE : / 'Message :'(001) ,gv_mesg.
CLEAR it_messages.
ENDLOOP.
ENDFORM. " ERROR_MESSAGES
*& Form BDC_PROCESS
Open bdc session if call transaction fails
FORM bdc_process.
IF gv_bdc = 'N'.
open bdc session
PERFORM open_bdc.
gv_bdc = 'O'.
ENDIF.
IF gv_bdc = 'O'.
insert data into bdc session
PERFORM insert_bdc.
ENDIF.
ENDFORM. " BDC_PROCESS
*& Form OPEN_BDC
Calling function module to open bdc session
FORM open_bdc.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'ZMM'
keep = 'X'
user = sy-uname
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.
ENDFORM. " OPEN_BDC
*& Form INSERT_BDC
Insert it_bdcdata into bdc by calling function module bdc_insert
FORM insert_bdc.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'MB22'
TABLES
dynprotab = it_bdcdata
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.
ENDFORM. " INSERT_BDC
*& Form CLOSE_BDC
Closing bdc session
FORM close_bdc.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
ENDFORM. " CLOSE_BDC
*& Form send_alert_data
Send Alert for the Expired Contract
FORM send_alert_data .
CLEAR: gv_lines,i_receivers, i_header, i_contents,i_doc_data.
REFRESH : i_receivers,i_header,i_contents.
DESCRIBE TABLE i_att LINES gv_lines.
i_receivers-receiver = gv_ernam.
i_receivers-receiver = 'SSHEIK'.
i_receivers-rec_type = 'B'.
i_receivers-rec_date = sy-datum.
i_receivers-express = 'X'.
i_receivers-com_type = 'INT'.
i_receivers-notif_del = 'X'.
APPEND i_receivers.
i_doc_data-obj_name = 'SAPoffice'(013).
i_doc_data-obj_descr = 'Reservations Reminder'(014).
i_doc_data-obj_langu = 'E'.
i_doc_data-no_change = c_x.
i_doc_data-obj_prio = 1.
i_doc_data-priority = 1.
i_doc_data-doc_size = ( gv_lines - 1 ) * 255 + 135.
i_pack_list-transf_bin = c_x.
i_pack_list-head_start = '1'.
i_pack_list-head_num = '1'.
i_pack_list-body_start = '1'.
i_pack_list-body_num = gv_lines.
i_pack_list-doc_type = 'DOC'.
i_pack_list-obj_name = 'SAPoffice'(013).
i_pack_list-obj_descr = 'Reservations Reminder'(014).
i_pack_list-obj_langu = 'E'.
i_pack_list-doc_size = ( gv_lines - 1 ) * 255 + 135.
APPEND i_pack_list.
i_header-line = 'Header'. APPEND i_header.
Data for contents
i_contents-line = 'Please find the Reservations Due List'(016).
APPEND i_contents.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = i_doc_data
PUT_IN_OUTBOX = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = i_pack_list
object_header = i_header
contents_bin = i_att
contents_txt = i_contents
receivers = i_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc = 0.
MESSAGE i000 WITH 'Mail Sucessfully sent'(017).
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " send_alert_data
*& Form send_mail_external
Send mail to External MAIL ID of the PR Creator
FORM send_mail_external.
DATA : lv_str(24), lv_str1(40),
lv_pernr LIKE adr6-persnumber,
lv_adrnr LIKE adr6-addrnumber,
lv_usrid LIKE pa0105-usrid,
lv_mail LIKE adr6-smtp_addr,
lv_sendor TYPE syuname,
lv_receiver TYPE string,
lv_header TYPE string,
lv_body TYPE string.
CLEAR: lv_pernr, lv_usrid, lv_adrnr,
lv_mail, lv_sendor, lv_receiver,
lv_header, lv_body .
lv_usrid = gv_ernam.
SELECT SINGLE persnumber addrnumber FROM usr21
INTO (lv_pernr,lv_adrnr)
WHERE bname = lv_usrid.
IF sy-subrc = 0.
SELECT SINGLE smtp_addr INTO lv_mail FROM adr6
WHERE addrnumber = lv_adrnr AND
persnumber = lv_pernr.
IF sy-subrc <> 0.
CONCATENATE lv_usrid '@anc.com' INTO lv_mail.
lv_receiver = lv_mail.
ELSE.
lv_receiver = lv_mail.
ENDIF.
lv_receiver = '[email protected]'.
lv_sendor = 'JALKHATAM'.
lv_header = 'Reservations Reminder'(014).
lv_str = 'Pls check your SAP Inbox'(019).
lv_str1 = 'for the status of Reservations Due List'(020).
CONCATENATE lv_str lv_str1 INTO lv_body
SEPARATED BY space.
Call Function Module To send mail
CALL FUNCTION 'UWSP_SEND_MAIL_TO_WEB'
EXPORTING
id_header = lv_header
id_body = lv_body
id_receiver = lv_receiver
id_sender = lv_sendor
ID_HTML_MAIL =
id_commit_work = 'X'
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. " send_mail_external
<b>Reward points for useful Answers</b>
Regards
Ashu
Maybe you are looking for
-
My 4th gen iPod Touch will not turn on
Over the last two years, I've battled with inconsistent performance from my iPod Touch 32GB 4th Gen. At some point, I think it got overheated, and I believe that's when the battery issues started. Here's an in-depth look at the various problems... 1)
-
Hi SAP experts , I am troubleshooting one system and I am kind of getting lost ... Let me explain the scenario: Posting period set up Posting date : 01-14-09 Sytem Date :01 -01-09 After checking all the information , I ran my period end closing .. I
-
Dynamic data column; pdf vs excel output
I have created a amortization report using BIP dynamic data columns. When I run the report in excel format then report run fine and it shows all the columns properly but if I run the report in pdf format then the dynamic columns are not displayed in
-
Just for the record, it's really weird that the "post a new topic" button is no where discovered as soon as you're looking at the topics...unless someone wants to point it out where that **** button is. I checked my calendar, Outlook 2003, and there
-
Handling errors in OBIEE init block
Hi, Is there a way to catch an error in the execution of an init block? Looks like the only way to figure out that the query for the initialization block has failed is by looking at NQServer.log and there is otherwise no alert or indication that some