Resource codes and UDFs in Primavera p6 R8.2 EPPM
Can anybody explain How to create Resource codes and UDFs in primavera p6 r8.2 EPPM.
what is the use of resource codes and UDFs.
Log into P6 Web > Administer > Enterprise Data > Select to Create UDF's or Codes
Similar Messages
-
Extending resource status and reason code category
Hi Experts,
I have a couple of questions regarding the extensibility of status and reason codes in ME15.0 in the context of machine integration:
1. Is it save to add new status fields (records) in WIP.STATUS for STATUS_GROUP="RESOURCE"? Is there any impact, if a resource doesn't match one of the predefined status values?
2. The "logResourceStatusChanged" service creates entries in WIP.RESOURCE_TIME_LOG but not in WIP.RESRCE. That way, it is possible to get different status values in both tables at a given time. Do you see any negative impact resulting from this data inconsistency?
The service "ChangeResourceStatusRequest" is not suitable in our case, since it doesn't provide a timestamp as input parameter for the status change. And even if it would, the prevention of a "sfc complete" when the status is "unscheduled down" is inconvenient for our customer. The scenario is, that the customer wants to complete the quantity produced until the machine broke down (assume lot production).
3. Is it possible to add new "categories" in addition to the predefined values in WIP.REASON _CODE? What is the impact?
regards,
GeorgHi Georg,
I cannot give you a precise yes/no answer - so this is just to share some info.
- I've heard about some customer who implemented custom statuses. When a new status simply was added in the database, it did not affect a core functionality. But I do not know what happens if this status is assigned to a resource and then a core fucntionality is triggered. There might be some validation which could fail. But it is easier to test specific cases as how you are going to use SAP ME, and I doubt any developer will be happy to run a full analysis of code to answer your question.
- The new statuses need to be considered for loading via IDAT and adding into LocaleSpecificText properties file.
- As to custom categories of reason codes, I guess there are only few places where system behavior is tightly connected to specific predefined reason codes. So, I'm inclined to believe that adding reason codes and categories will not harm.
Regards,
Sergiy -
How to read XI Data type in Java code and populate as array list, using UDF
Hi,
How to read XI Data type in Java code and populate as array list, using UDF?
Is there any API using which the XI data types can be read?
Kindly reply.
RichaInput Structure:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:CustomerCreateResp xmlns:ns0="urn:bp:xi:up:re:cust_mdm:cmdm:pr5:100">
<CUSTOMER>
<item>
<CUSTOMERNO/>
<MDMCUSTOMER/>
<CREATE_DATE/>
<RETURN>
<TYPE/>
<MESSAGE/>
</RETURN>
<PT_CONTPART_RETURN>
<item>
<MDM_CONTACT/>
<CONTACT/>
</item>
</PT_CONTPART_RETURN>
<PARTNERS>
<item>
<CUSTOMERNO/>
<PARTNER_FUNCTION/>
<PARTNER_NUMBER/>
<DEFAULT_PARTNER/>
</item>
</PARTNERS>
</item>
</CUSTOMER>
</ns0:CustomerCreateResp>
Output structure
(Sample output structure.This actually needs to be mapped and generated using UDF)
<?xml version="1.0" encoding="UTF-8"?>
<ns1:updateCustomer xmlns:ns1="urn:xiSericeVi"><ns1:customer><ns2:ArrayList xmlns:ns2="java:sap/standard">[]</ns2:ArrayList></ns1:customer><ns1:name>2344566</ns1:name></ns1:updateCustomer> -
Sample JAVA Mobile Server Publish code, and technical questions
Dear Oracle technical representative, or user:
I need to programmatically create, and remove publications using the pure JAVA classes of Consolidator, ConsolidatorManager, and ResourceManager for the Mobile Server in OracleLite 9i Release 5.0.1. On the creation side I have managed to get the example found in the directory OraLite501\Mobile\Server\Sample\Sample11 functioning using my installation parameters. I had a very difficult time of it because (1) the sample11 code fails to open an jdbc connection to the Mobile Server Repository Schema with the function Consolidator.OpenConnection, and (2) the ResourceManager function openConnection will not work unless the Webtogo.ora file is in the current working directory. The ConsolidatorManager function OpenConnection may also not work unless the Webtogo.ora file is in the current working directory, but I did test the hypothesis. Both of these problems need to be addressed in the sample11 code, and documentation to save other software developers from wasting hours of their valuable time. See line 223, 386, and 448 in the Publish.Java code that follows this problem description.
With the above two problems resolved, I can now programmatically create publications, but no hints on how to programmatically remove a publication exist in the documentation. The application I am developing will require the dynamic creation, and removal of publications. Also, when developing applications the complete removal of a publication is absolutely necessary when you have botched a publication. Thus my first question is What sequence of ResourceManager, and ConsolidatorManager function calls will completely remove a Publication?.
I also have two issues remaining with the code that I have so far developed. These issues will most likely be resolved, when I obtain instructions on how to completely remove a publication, and associated users. But, perhaps not. Referencing the Publish.java file that follows this problem description,
1. The ResourceManager function dropUser does not drop a user. See my comments, and code beginning at line 277 in Publish.java. Do I need to de-instantiate all subscriptions, and unsubscribe all subscription users before calling this function.? I think, I tried the de-instantiate, unsubscribe sequence without success, but in the confusion I may not have made the try.
2. How do I get rid of an index created with the ConsolidatorManager function DropPublicationItemIndex?. My comments on this problem begin at line 522 in Publish.java. For some reason the DropPublicationItemIndex function call made below line 448 does not work. What function calls are required prior to calling the DropPublicationItemIndex function?
Throughout the Publish.java code, I have made comments about some of the problems that I have had in getting the sample11 code working for my installation parameters. I think these comments should help the programmers maintaining the ResourceManager, and ConsolidatorManager code improve the stability of the programs. Please pass these comments, and attached files to the appropriate individuals,
if you are in a position to do so.
The other files that follow the Publish.java code are
1. Compile.bat - Compiles Publish.java using j2sdk1.4.0.
2. Run.bat - Executes Publish using \ j2sdk1.4.0\jre\server\jvm.dll.
3. Webtogo.ora
4. tnsnames.ora for the Mobile Server.
5. tnsnames.ora for the Database.
Feel free to access my server if you need to do so in resolving my problems. The parameters you will need to gain access can be found at the top of Publish.java, and in the included *.ora files.
Thanks,
Thomas G. Matney
[email protected]
(662)325-2791
//Start of Publish.java code
// Oracle HTTP Server URL = http://yggdrasill.cfr.msstate.edu:7778
// = http://130.18.168.225:7778
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center username = administrator
// Mobile Server Control Center password = admin
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile administrator username = fiafield // Schema FIAFIELD on FIA.CFR.MSSTATE.EDU
// Mobile administrator password = fiafield // Username and password are the same
import java.sql.SQLException;
import java.sql.*;
import oracle.lite.sync.Consolidator;
import oracle.lite.sync.ConsolidatorManager;
import oracle.mobile.admin.ResourceManager;
import oracle.mobile.admin.ResException;
import oracle.sql.*;
import oracle.jdbc.*;
import oracle.mobile.admin.*;
public class Publish
// Schema names and usernames are not case sensitive.
// UN fiafield = FIAFIELD
// SCHEMA fiafield = FIAFIELD
// Schema name/Username, and password used on creation of Mobile Repository
static String CONS_SCHEMA = "fiafield";
static String DEFAULT_PASSWORD = "fiafield";
static String admin_jdbc_url = "jdbc:oracle:oci8:@WEBTOGO.WORLD";
static String thin_jdbc_url =
"jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU";
static String Publication;
static String CreateTreeTableShortNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "id FLOAT,"
+ "subp FLOAT,"
+ "rnum FLOAT,"
+ "st FLOAT,"
+ "unit FLOAT,"
+ "cnty FLOAT,"
+ "plot FLOAT,"
+ "cyc FLOAT,"
+ "scyc FLOAT,"
+ "tree FLOAT,"
+ "ncpt FLOAT NULL,"
+ "dist FLOAT NULL,"
+ "diam FLOAT NULL,"
+ "dmht FLOAT NULL,"
+ "dmck FLOAT NULL,"
+ "spec FLOAT NULL,"
+ "lang FLOAT NULL,"
+ "nctc FLOAT NULL,"
+ "stat FLOAT NULL,"
+ "util FLOAT NULL,"
+ "deca FLOAT NULL,"
+ "crat FLOAT NULL,"
+ "ccls FLOAT NULL,"
+ "az FLOAT NULL,"
+ "cond FLOAT NULL,"
+ "tlen FLOAT NULL,"
+ "alen FLOAT NULL,"
+ "lmet FLOAT NULL,"
+ "nctg FLOAT NULL,"
+ "rcul FLOAT NULL,"
+ "ncpd FLOAT NULL,"
+ "dead FLOAT NULL,"
+ "mor FLOAT NULL,"
+ "modm FLOAT NULL,"
+ "dml1 FLOAT NULL,"
+ "dmt1 FLOAT NULL,"
+ "dms1 FLOAT NULL,"
+ "dma1 FLOAT NULL,"
+ "dml2 FLOAT NULL,"
+ "dmt2 FLOAT NULL,"
+ "dms2 FLOAT NULL,"
+ "dma2 FLOAT NULL,"
+ "dml3 FLOAT NULL,"
+ "dmt3 FLOAT NULL,"
+ "dms3 FLOAT NULL,"
+ "dma3 FLOAT NULL,"
+ "dbtr FLOAT NULL,"
+ "dbsp FLOAT NULL,"
+ "nxtn FLOAT NULL,"
+ "dbds FLOAT NULL,"
+ "dbaz FLOAT NULL,"
+ "psta FLOAT NULL,"
+ "fiat FLOAT NULL,"
+ "fhmt FLOAT NULL"
+ ")";
static String CreateTreeTableLongNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "ID FLOAT,"
+ "SUBPLOT FLOAT,"
+ "RECORD_NUMBER FLOAT,"
+ "STATE FLOAT,"
+ "UNIT FLOAT,"
+ "COUNTY FLOAT,"
+ "PLOT FLOAT,"
+ "CYCLE FLOAT,"
+ "SUBCYCLE FLOAT,"
+ "TREE FLOAT,"
+ "NC_PLOT_TYPE FLOAT,"
+ "DISTANCE FLOAT NULL,"
+ "DIAMETER FLOAT NULL,"
+ "DIAMETER_HEIGHT FLOAT NULL,"
+ "DIAMETER_CHECK FLOAT NULL,"
+ "SPECIES FLOAT NULL,"
+ "LEAN_ANGLE FLOAT NULL,"
+ "NC_TREE_CLASS FLOAT NULL,"
+ "STATUS FLOAT NULL,"
+ "UTILIZATION FLOAT NULL,"
+ "DECAY FLOAT NULL,"
+ "CROWN_RATIO FLOAT NULL,"
+ "CROWN_CLASS FLOAT NULL,"
+ "AZIMUTH FLOAT NULL,"
+ "CONDITION FLOAT NULL,"
+ "TOTAL_LENGTH FLOAT NULL,"
+ "ACTUAL_LENGTH FLOAT NULL,"
+ "LENGTH_METHOD FLOAT NULL,"
+ "NC_TREE_GRADE FLOAT NULL,"
+ "ROTTEN_CULL FLOAT NULL,"
+ "NC_PREVIOUS_DBH FLOAT NULL,"
+ "CAUSE_OF_DEATH FLOAT NULL,"
+ "MORTALITY_YEAR FLOAT NULL,"
+ "MO_DAMAGE FLOAT NULL,"
+ "DAMAGE_LOCATION1 FLOAT NULL,"
+ "DAMAGE_TYPE1 FLOAT NULL,"
+ "DAMAGE_SEVERITY1 FLOAT NULL,"
+ "NC_DAMAGE_AGENT1 FLOAT NULL,"
+ "DAMAGE_LOCATION2 FLOAT NULL,"
+ "DAMAGE_TYPE2 FLOAT NULL,"
+ "DAMAGE_SEVERITY2 FLOAT NULL,"
+ "NC_DAMAGE_AGENT2 FLOAT NULL,"
+ "DAMAGE_LOCATION3 FLOAT NULL,"
+ "DAMAGE_TYPE3 FLOAT NULL,"
+ "DAMAGE_SEVERITY3 FLOAT NULL,"
+ "NC_DAMAGE_AGENT3 FLOAT NULL,"
+ "DB_TREE FLOAT NULL,"
+ "DB_SPECIES FLOAT NULL,"
+ "NEXT_NUMBER FLOAT NULL,"
+ "DB_DISTANCE FLOAT NULL,"
+ "DB_AZIMUTH FLOAT NULL,"
+ "PREVIOUS_STATUS FLOAT NULL,"
+ "FIA_TREE_NUMBER FLOAT NULL,"
+ "FHM_TREE FLOAT NULL"
+ ")";
public static void main(String argv[]) throws Throwable
// Publish - an OKAPI sample
if(argv.length == 2)
CONS_SCHEMA = argv[0] ;
DEFAULT_PASSWORD = argv[1] ;
//create required tables using standard jdbc
//DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ());
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection c = null;
Statement s = null;
try
// Open connection to Mobile Repositoty/FIAFIELD schema as SYSTEM.
// Need the ability to grant resources, and connection to Mobile Repository user
//c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD", "SYSTEM", "phwphw" );
// Remote connection. See attached webtogo.ora.
c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD.YGG",
"SYSTEM", "phwphw");
s = c.createStatement ();
try
s.executeUpdate("DROP table FIAFIELD.ZMTR1TBL");
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate(CreateTreeTableShortNames);
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate("alter table FIAFIELD.ZMTR1TBL add constraint"
+" zmtr1tbl_pk primary key(subp, tree)");
catch (SQLException ee)
ee.printStackTrace ();
// Line 223 // create consolidator publications.
try
// *****!!!!! Unless the Webtogo.ora file is in the current working
// directory the connection is not made. This version of the resource
// manager must be looking for the file in the old 8i Mobile default
// directory. This is a definite problem. If the code was working, the
// addition of the webtogo.ora should have affect on the functionality
// of the code.
// The connection is made to the Mobile Server. At least no exceptions
// are thrown, provided the webtogo.ora is in the current working
// directory.
//oracle.mobile.admin.ResourceManager.openConnection(CONS_SCHEMA, DEFAULT_PASSWORD);
// I tried making a direct connect to possibly avoid needing to have the
// webtogo.ora file in the current directory. The direct coonect did not work.
// You can quickly convince yourself that the webtogo.ora file must
// be in the current working directory, by running the code with and
// without the webtogo.ora in the current working directory.
// The directory OraLiteHome\Mobile\Server\bin is in the PATH after
// after installation but the extension .ora is not in PATHEXT. The
// OraLite installer should put .ora in PATHEXT. I tried adding .ora
// to the PATHEXT, but it still could not find thw webtogo.ora file,
// and it should have. What is going on? I am a bit rusty on DOS so
// I may not have thing right.
// OraLiteHome\Mobile\Server\bin is the residing directory for
// the functional copy of the webtogo.ora file.
oracle.mobile.admin.ResourceManager.openConnection(
CONS_SCHEMA,
DEFAULT_PASSWORD,
"jdbc:oracle:oci8:@WEBTOGO.WORLD");
catch(ResException ee)
ee.printStackTrace (); // NULL Pointer Exception?
// The Mobile user is created, and then the function throws a resource exception.
// This is a serious problem with the code. One would assume that the user
// is not created if and exception is thrown.
// This appears to be a bug in the createUser code. The function should return
// false if the user is not created, and handle, or not throw the exception.
// The function always returns false. It does return true when a user is created
// because it throws an exception.
boolean bIsCreated;
System.out.println("Begin of why is ResourceManager not dropping users?");
// Line 277
try
// The dropUser function will not drop a user. I have tested the function
// by creating the user ZMPT1UA in the Mobile Server Control Center
// http://Yggdrasill.cfr.msstate.edu/webtogo
// so I know that the user exist.
// This function throws a ResException but it is not declared correctly
// since you cannot trap the exception as a ResException. It always tells
// me the view does not exist. What steps are required to get the function
// to work? What function calls need to be made prior to calling the dropUser
// function.
oracle.mobile.admin.ResourceManager.dropUser("ZMPT1UA");
catch (Throwable ee)
ee.printStackTrace (); // NULL Pointer Exception?
System.out.println("End of why is ResourceManager not dropping users?");
try
bIsCreated = oracle.mobile.admin.ResourceManager.createUser(
"ZMPT1UA",
DEFAULT_PASSWORD,
"ZMPT1UA", "S");
catch (Throwable ee)
ee.printStackTrace (); // Ignore exception
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
// Create CONS_SCHEMA user on the database with the same username, and
// password as the user on the Mobile Server side. This is why the
// DriverManager connection was made as SYSTEM/phwphw.
// Grant ALL to repository, and user on replicated database
// On the database side there is a user with un = fiafield,
// and pw = fiafield, which is the same as the Mobile Repository
// schema name/password pair fiafield/fiafield. Can this duality
// create a problem? Probably not.
// Need SYSTEM ADMIN privilages for the next two steps, and that is
// why the coonection was established as SYSTEM/phwphw.
// Make user, and grants for Publish to user CONS_SCHEMA, and ZMPT1UA
System.out.println("Pargress point D");
try
s.execute("Create user " + "ZMPT1UA" + " identified by " + DEFAULT_PASSWORD);
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + CONS_SCHEMA + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + "ZMPT1UA" + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
/* This code is not needed to test the code
// Insert items into table FIAFIELD.ZMTR1TBL from FIAFIELD.HUSKY_TREE
String Statement =
"INSERT INTO FIAFIELD.ZMTR1TBL SELECT * from FIAFIELD.HUSKY_TREE WHERE PLOT = 1";
try
s.execute(Statement);
catch (SQLException ee)
System.out.println("FIAFIELD.HUSKY_TREE was not inserted into FIAFIELD.ZMTR1TBL");
ee.printStackTrace (); // ignore
c.commit ();
catch (SQLException ee)
ee.printStackTrace ();
finally
if (s!= null) try {s.close ();}catch (SQLException e1){}
if (c!= null) try {c.close ();}catch (SQLException e2){}
// The Consolidator class is not thread safe, and I will eventually
// need thread safety. The ConsolidatorManage class is thread safe.
//Consolidator ConsolidatorXX = new Consolidator();
ConsolidatorManager ConsolidatorXX = new ConsolidatorManager();
// Line 386
// Try opening a connection. Sample11 does not open a connection, but it seems
// like a logical first thing to do.
// At least with this connection the DropPublication, and AddPublication functions
// appear to work, or at least they do not throw exceptions. The DropPublication
// throws an exception if a publication does not exist? I tested this and indeed
// if I call the DropPublication function, and do not create the Publication again
// when I reenter the program the DropPublication function throws an exception, and
// produces the correct error message(The publication does not exist). There is hope.
// It is very disturbing that the program fails unless the webtogo.ora file is not
// in the current working directory. Because the OpenConnection functions of both
// the ResourceManager, and ConsolidatorManager both appear to need access to the
// webtogo.ora file, and they are finding them in the current directory, the
// logical conclusion is that both of the classes are attempting to open the
// webtogo.ora with the relative path webtogo.ora, and not the absolute path
// OraHomeLite/Mobile/Server/Bin/webtogo.ora. As this has to be the case, why
// is this very important fact not in the documentation? Or, am I wrong?
Connection conn = null;
try
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD);
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD,
//"jdbc:oracle:oci8:@WEBTOGO.WORLD");
conn = DriverManager.getConnection
("jdbc:oracle:oci8:@WEBTOGO.WORLD",
CONS_SCHEMA,DEFAULT_PASSWORD);
//conn = DriverManager.getConnection
//("jdbc:oracle:oci8:@WEBTOGO.WORLD",
//"SYSTEM","phwphw");
ConsolidatorXX.OpenConnection(conn);
catch (Throwable e)
e.printStackTrace(); //ignore error
// Publication name
Publication = "ZMTR1PUB";
try
ConsolidatorXX.DeinstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
System.out.println("Could not Deinstantiate Subscription ZMPT1UA");
e.printStackTrace(); //ignore error
// Line 448
// There is no Consolidator.OpenConnection in the orginal sample11.java code.
// Why?. It appears to be neccessary. The only way I can make the sample11 code
// or this program work is to open a jdbc connection with the Consolidator.OpenConnection
// function. I assume that somehow the Consolidator.OpenConnection function was
// deleted from sample11.java.
// This try to drop a publication index does not work, because when I try
// to recreate the index in the following code it warns me that I have a
// bad column name for the index. So it thinks the index still exist.
// Why?. How do I get rid of the index?
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItem("ZMTR1ITM");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublication(Publication);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
//ConsolidatorXX.CreatePublication(Publication, Consolidator.OKPI_CREATOR_ID,
//"zMTR1.%s", null);
ConsolidatorXX.CreatePublication(Publication, Consolidator.OKAPI_WINCE,
"zMTR1.%s", null);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.CreatePublicationItem("ZMTR1ITM","FIAFIELD","ZMTR1TBL", "F",
"SELECT * FROM FIAFIELD.ZMTR1TBL", null, null);
catch (Throwable e)
e.printStackTrace();
System.out.println("Begin of how can drop this index and get rid of the warning?");
// Line 522
// I defined the index ZMTR1IX1 originally on the variable subp, and did not get
// any warning. I then changed the index variable for the index to id, and started
// receiving the warning to check the index column for typographical errors. Even
// if I change the index variable back to subp, I continue to receive the warning.
// How do I get rid of the index and the warning, so I can recreate the index for
// another variable? I quess the real question is "How to I completely remove a
// publication, and all of its parts so I can start over?
try
ConsolidatorXX.CreatePublicationItemIndex(
"ZMTR1IX1", "ZMTR1ITM", "I", "id");
catch (Throwable e)
e.printStackTrace ();
System.out.println("End of how can drop this index and get rid of the warning?");
try
ConsolidatorXX.AddPublicationItem(
Publication, "ZMTR1ITM", null, null, "S", null, null);
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CreateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.InstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CloseConnection();
if(conn != null)
conn.close();
catch (Throwable e)
e.printStackTrace(); //ignore error
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
oracle.mobile.admin.ResourceManager.closeConnection();
End of Publish.java code
Begin Compile.bat
set CLASSPATH = .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\javac Publish.java
End Compile.bat
Begin Run.bat
set CLASSPATH= .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\java Publish
End Run.bat
Begin webtogo.ora
USE_SYSTEM_CLASSPATH = NO
MODE = SERVER
PORT = 80
BASE_URL=/webtogo
ADMIN_TNS_NAME=WEBTOGO.WORLD
ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
APPLET_USE_THIN_JDBC = YES
THIN_JDBC_URL=jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU
SITE_OFFLINE_PERIOD=0
CUSTOM_WORKSPACE=no
CUSTOM_DIRECTORY=myworkspace
DEFAULT_PAGE=myfirstpage.html
ADMIN_USER=8B37E78535B55525292A3A2929292999
ADMIN_PASSWORD=873515A838B85828292A3A2929292999
[EXTERNAL_AUTHENTICATION]
#CLASS=com.acme.SampleAuthenticator
# Web-to-go workspace's font
FONT_NAME=Arial
[FILESYSTEM]
#ROOT_DIR=%WEBTOGO_HOME%\server
#TYPE=O8
#TYPE=OL
#TYPE=OS
# Cache size in MBs
#CACHE_SIZE=10
MAX_CONNECTIONS=4
[DEBUG]
#ENABLE=YES
# The log file name.
#LOG_FILE=test.log
# Machine name and port where wsh.exe -m is running. Web-to-go
# will send debug output to that machine.
#MACHINE=
#PORT=100
[APPLICATIONS]
XMLFILE = ws1.xml
PACK_HELP=D:\OraLite501\mobile\doc\wtg\html\wtgdep.htm
[PUBLIC]
oracle.lite.sync.ConsolidatorServlet=/Consolidator
[CONSOLIDATOR]
# Installer will change these values
SERVER_VERSION=8.1.5
# 8.0.5 or 8.1.5
# Installer won't change these values
MAX_THREADS=3
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
TEMP=c:\\temp
WTG_PROXY_PORT=80
TRACE=NO
TRACE_ALL=NO
End webtogo.ora
Begin Mobile Server tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\OraLite501\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
WEBTOGO.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
WEBTOGO.WORLD.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
End Mobile Server tnsnames.ora file
Begin Database tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
INST1_HTTP.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
FIA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGGDRASILL.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
EXTPROC_CONNECTION_DATA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
End Database tnsnames.ora fileDear Oracle technical representative, or user:
I need to programmatically create, and remove publications using the pure JAVA classes of Consolidator, ConsolidatorManager, and ResourceManager for the Mobile Server in OracleLite 9i Release 5.0.1. On the creation side I have managed to get the example found in the directory OraLite501\Mobile\Server\Sample\Sample11 functioning using my installation parameters. I had a very difficult time of it because (1) the sample11 code fails to open an jdbc connection to the Mobile Server Repository Schema with the function Consolidator.OpenConnection, and (2) the ResourceManager function openConnection will not work unless the Webtogo.ora file is in the current working directory. The ConsolidatorManager function OpenConnection may also not work unless the Webtogo.ora file is in the current working directory, but I did test the hypothesis. Both of these problems need to be addressed in the sample11 code, and documentation to save other software developers from wasting hours of their valuable time. See line 223, 386, and 448 in the Publish.Java code that follows this problem description.
With the above two problems resolved, I can now programmatically create publications, but no hints on how to programmatically remove a publication exist in the documentation. The application I am developing will require the dynamic creation, and removal of publications. Also, when developing applications the complete removal of a publication is absolutely necessary when you have botched a publication. Thus my first question is What sequence of ResourceManager, and ConsolidatorManager function calls will completely remove a Publication?.
I also have two issues remaining with the code that I have so far developed. These issues will most likely be resolved, when I obtain instructions on how to completely remove a publication, and associated users. But, perhaps not. Referencing the Publish.java file that follows this problem description,
1. The ResourceManager function dropUser does not drop a user. See my comments, and code beginning at line 277 in Publish.java. Do I need to de-instantiate all subscriptions, and unsubscribe all subscription users before calling this function.? I think, I tried the de-instantiate, unsubscribe sequence without success, but in the confusion I may not have made the try.
2. How do I get rid of an index created with the ConsolidatorManager function DropPublicationItemIndex?. My comments on this problem begin at line 522 in Publish.java. For some reason the DropPublicationItemIndex function call made below line 448 does not work. What function calls are required prior to calling the DropPublicationItemIndex function?
Throughout the Publish.java code, I have made comments about some of the problems that I have had in getting the sample11 code working for my installation parameters. I think these comments should help the programmers maintaining the ResourceManager, and ConsolidatorManager code improve the stability of the programs. Please pass these comments, and attached files to the appropriate individuals,
if you are in a position to do so.
The other files that follow the Publish.java code are
1. Compile.bat - Compiles Publish.java using j2sdk1.4.0.
2. Run.bat - Executes Publish using \ j2sdk1.4.0\jre\server\jvm.dll.
3. Webtogo.ora
4. tnsnames.ora for the Mobile Server.
5. tnsnames.ora for the Database.
Feel free to access my server if you need to do so in resolving my problems. The parameters you will need to gain access can be found at the top of Publish.java, and in the included *.ora files.
Thanks,
Thomas G. Matney
[email protected]
(662)325-2791
//Start of Publish.java code
// Oracle HTTP Server URL = http://yggdrasill.cfr.msstate.edu:7778
// = http://130.18.168.225:7778
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center username = administrator
// Mobile Server Control Center password = admin
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile administrator username = fiafield // Schema FIAFIELD on FIA.CFR.MSSTATE.EDU
// Mobile administrator password = fiafield // Username and password are the same
import java.sql.SQLException;
import java.sql.*;
import oracle.lite.sync.Consolidator;
import oracle.lite.sync.ConsolidatorManager;
import oracle.mobile.admin.ResourceManager;
import oracle.mobile.admin.ResException;
import oracle.sql.*;
import oracle.jdbc.*;
import oracle.mobile.admin.*;
public class Publish
// Schema names and usernames are not case sensitive.
// UN fiafield = FIAFIELD
// SCHEMA fiafield = FIAFIELD
// Schema name/Username, and password used on creation of Mobile Repository
static String CONS_SCHEMA = "fiafield";
static String DEFAULT_PASSWORD = "fiafield";
static String admin_jdbc_url = "jdbc:oracle:oci8:@WEBTOGO.WORLD";
static String thin_jdbc_url =
"jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU";
static String Publication;
static String CreateTreeTableShortNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "id FLOAT,"
+ "subp FLOAT,"
+ "rnum FLOAT,"
+ "st FLOAT,"
+ "unit FLOAT,"
+ "cnty FLOAT,"
+ "plot FLOAT,"
+ "cyc FLOAT,"
+ "scyc FLOAT,"
+ "tree FLOAT,"
+ "ncpt FLOAT NULL,"
+ "dist FLOAT NULL,"
+ "diam FLOAT NULL,"
+ "dmht FLOAT NULL,"
+ "dmck FLOAT NULL,"
+ "spec FLOAT NULL,"
+ "lang FLOAT NULL,"
+ "nctc FLOAT NULL,"
+ "stat FLOAT NULL,"
+ "util FLOAT NULL,"
+ "deca FLOAT NULL,"
+ "crat FLOAT NULL,"
+ "ccls FLOAT NULL,"
+ "az FLOAT NULL,"
+ "cond FLOAT NULL,"
+ "tlen FLOAT NULL,"
+ "alen FLOAT NULL,"
+ "lmet FLOAT NULL,"
+ "nctg FLOAT NULL,"
+ "rcul FLOAT NULL,"
+ "ncpd FLOAT NULL,"
+ "dead FLOAT NULL,"
+ "mor FLOAT NULL,"
+ "modm FLOAT NULL,"
+ "dml1 FLOAT NULL,"
+ "dmt1 FLOAT NULL,"
+ "dms1 FLOAT NULL,"
+ "dma1 FLOAT NULL,"
+ "dml2 FLOAT NULL,"
+ "dmt2 FLOAT NULL,"
+ "dms2 FLOAT NULL,"
+ "dma2 FLOAT NULL,"
+ "dml3 FLOAT NULL,"
+ "dmt3 FLOAT NULL,"
+ "dms3 FLOAT NULL,"
+ "dma3 FLOAT NULL,"
+ "dbtr FLOAT NULL,"
+ "dbsp FLOAT NULL,"
+ "nxtn FLOAT NULL,"
+ "dbds FLOAT NULL,"
+ "dbaz FLOAT NULL,"
+ "psta FLOAT NULL,"
+ "fiat FLOAT NULL,"
+ "fhmt FLOAT NULL"
+ ")";
static String CreateTreeTableLongNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "ID FLOAT,"
+ "SUBPLOT FLOAT,"
+ "RECORD_NUMBER FLOAT,"
+ "STATE FLOAT,"
+ "UNIT FLOAT,"
+ "COUNTY FLOAT,"
+ "PLOT FLOAT,"
+ "CYCLE FLOAT,"
+ "SUBCYCLE FLOAT,"
+ "TREE FLOAT,"
+ "NC_PLOT_TYPE FLOAT,"
+ "DISTANCE FLOAT NULL,"
+ "DIAMETER FLOAT NULL,"
+ "DIAMETER_HEIGHT FLOAT NULL,"
+ "DIAMETER_CHECK FLOAT NULL,"
+ "SPECIES FLOAT NULL,"
+ "LEAN_ANGLE FLOAT NULL,"
+ "NC_TREE_CLASS FLOAT NULL,"
+ "STATUS FLOAT NULL,"
+ "UTILIZATION FLOAT NULL,"
+ "DECAY FLOAT NULL,"
+ "CROWN_RATIO FLOAT NULL,"
+ "CROWN_CLASS FLOAT NULL,"
+ "AZIMUTH FLOAT NULL,"
+ "CONDITION FLOAT NULL,"
+ "TOTAL_LENGTH FLOAT NULL,"
+ "ACTUAL_LENGTH FLOAT NULL,"
+ "LENGTH_METHOD FLOAT NULL,"
+ "NC_TREE_GRADE FLOAT NULL,"
+ "ROTTEN_CULL FLOAT NULL,"
+ "NC_PREVIOUS_DBH FLOAT NULL,"
+ "CAUSE_OF_DEATH FLOAT NULL,"
+ "MORTALITY_YEAR FLOAT NULL,"
+ "MO_DAMAGE FLOAT NULL,"
+ "DAMAGE_LOCATION1 FLOAT NULL,"
+ "DAMAGE_TYPE1 FLOAT NULL,"
+ "DAMAGE_SEVERITY1 FLOAT NULL,"
+ "NC_DAMAGE_AGENT1 FLOAT NULL,"
+ "DAMAGE_LOCATION2 FLOAT NULL,"
+ "DAMAGE_TYPE2 FLOAT NULL,"
+ "DAMAGE_SEVERITY2 FLOAT NULL,"
+ "NC_DAMAGE_AGENT2 FLOAT NULL,"
+ "DAMAGE_LOCATION3 FLOAT NULL,"
+ "DAMAGE_TYPE3 FLOAT NULL,"
+ "DAMAGE_SEVERITY3 FLOAT NULL,"
+ "NC_DAMAGE_AGENT3 FLOAT NULL,"
+ "DB_TREE FLOAT NULL,"
+ "DB_SPECIES FLOAT NULL,"
+ "NEXT_NUMBER FLOAT NULL,"
+ "DB_DISTANCE FLOAT NULL,"
+ "DB_AZIMUTH FLOAT NULL,"
+ "PREVIOUS_STATUS FLOAT NULL,"
+ "FIA_TREE_NUMBER FLOAT NULL,"
+ "FHM_TREE FLOAT NULL"
+ ")";
public static void main(String argv[]) throws Throwable
// Publish - an OKAPI sample
if(argv.length == 2)
CONS_SCHEMA = argv[0] ;
DEFAULT_PASSWORD = argv[1] ;
//create required tables using standard jdbc
//DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ());
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection c = null;
Statement s = null;
try
// Open connection to Mobile Repositoty/FIAFIELD schema as SYSTEM.
// Need the ability to grant resources, and connection to Mobile Repository user
//c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD", "SYSTEM", "phwphw" );
// Remote connection. See attached webtogo.ora.
c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD.YGG",
"SYSTEM", "phwphw");
s = c.createStatement ();
try
s.executeUpdate("DROP table FIAFIELD.ZMTR1TBL");
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate(CreateTreeTableShortNames);
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate("alter table FIAFIELD.ZMTR1TBL add constraint"
+" zmtr1tbl_pk primary key(subp, tree)");
catch (SQLException ee)
ee.printStackTrace ();
// Line 223 // create consolidator publications.
try
// *****!!!!! Unless the Webtogo.ora file is in the current working
// directory the connection is not made. This version of the resource
// manager must be looking for the file in the old 8i Mobile default
// directory. This is a definite problem. If the code was working, the
// addition of the webtogo.ora should have affect on the functionality
// of the code.
// The connection is made to the Mobile Server. At least no exceptions
// are thrown, provided the webtogo.ora is in the current working
// directory.
//oracle.mobile.admin.ResourceManager.openConnection(CONS_SCHEMA, DEFAULT_PASSWORD);
// I tried making a direct connect to possibly avoid needing to have the
// webtogo.ora file in the current directory. The direct coonect did not work.
// You can quickly convince yourself that the webtogo.ora file must
// be in the current working directory, by running the code with and
// without the webtogo.ora in the current working directory.
// The directory OraLiteHome\Mobile\Server\bin is in the PATH after
// after installation but the extension .ora is not in PATHEXT. The
// OraLite installer should put .ora in PATHEXT. I tried adding .ora
// to the PATHEXT, but it still could not find thw webtogo.ora file,
// and it should have. What is going on? I am a bit rusty on DOS so
// I may not have thing right.
// OraLiteHome\Mobile\Server\bin is the residing directory for
// the functional copy of the webtogo.ora file.
oracle.mobile.admin.ResourceManager.openConnection(
CONS_SCHEMA,
DEFAULT_PASSWORD,
"jdbc:oracle:oci8:@WEBTOGO.WORLD");
catch(ResException ee)
ee.printStackTrace (); // NULL Pointer Exception?
// The Mobile user is created, and then the function throws a resource exception.
// This is a serious problem with the code. One would assume that the user
// is not created if and exception is thrown.
// This appears to be a bug in the createUser code. The function should return
// false if the user is not created, and handle, or not throw the exception.
// The function always returns false. It does return true when a user is created
// because it throws an exception.
boolean bIsCreated;
System.out.println("Begin of why is ResourceManager not dropping users?");
// Line 277
try
// The dropUser function will not drop a user. I have tested the function
// by creating the user ZMPT1UA in the Mobile Server Control Center
// http://Yggdrasill.cfr.msstate.edu/webtogo
// so I know that the user exist.
// This function throws a ResException but it is not declared correctly
// since you cannot trap the exception as a ResException. It always tells
// me the view does not exist. What steps are required to get the function
// to work? What function calls need to be made prior to calling the dropUser
// function.
oracle.mobile.admin.ResourceManager.dropUser("ZMPT1UA");
catch (Throwable ee)
ee.printStackTrace (); // NULL Pointer Exception?
System.out.println("End of why is ResourceManager not dropping users?");
try
bIsCreated = oracle.mobile.admin.ResourceManager.createUser(
"ZMPT1UA",
DEFAULT_PASSWORD,
"ZMPT1UA", "S");
catch (Throwable ee)
ee.printStackTrace (); // Ignore exception
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
// Create CONS_SCHEMA user on the database with the same username, and
// password as the user on the Mobile Server side. This is why the
// DriverManager connection was made as SYSTEM/phwphw.
// Grant ALL to repository, and user on replicated database
// On the database side there is a user with un = fiafield,
// and pw = fiafield, which is the same as the Mobile Repository
// schema name/password pair fiafield/fiafield. Can this duality
// create a problem? Probably not.
// Need SYSTEM ADMIN privilages for the next two steps, and that is
// why the coonection was established as SYSTEM/phwphw.
// Make user, and grants for Publish to user CONS_SCHEMA, and ZMPT1UA
System.out.println("Pargress point D");
try
s.execute("Create user " + "ZMPT1UA" + " identified by " + DEFAULT_PASSWORD);
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + CONS_SCHEMA + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + "ZMPT1UA" + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
/* This code is not needed to test the code
// Insert items into table FIAFIELD.ZMTR1TBL from FIAFIELD.HUSKY_TREE
String Statement =
"INSERT INTO FIAFIELD.ZMTR1TBL SELECT * from FIAFIELD.HUSKY_TREE WHERE PLOT = 1";
try
s.execute(Statement);
catch (SQLException ee)
System.out.println("FIAFIELD.HUSKY_TREE was not inserted into FIAFIELD.ZMTR1TBL");
ee.printStackTrace (); // ignore
c.commit ();
catch (SQLException ee)
ee.printStackTrace ();
finally
if (s!= null) try {s.close ();}catch (SQLException e1){}
if (c!= null) try {c.close ();}catch (SQLException e2){}
// The Consolidator class is not thread safe, and I will eventually
// need thread safety. The ConsolidatorManage class is thread safe.
//Consolidator ConsolidatorXX = new Consolidator();
ConsolidatorManager ConsolidatorXX = new ConsolidatorManager();
// Line 386
// Try opening a connection. Sample11 does not open a connection, but it seems
// like a logical first thing to do.
// At least with this connection the DropPublication, and AddPublication functions
// appear to work, or at least they do not throw exceptions. The DropPublication
// throws an exception if a publication does not exist? I tested this and indeed
// if I call the DropPublication function, and do not create the Publication again
// when I reenter the program the DropPublication function throws an exception, and
// produces the correct error message(The publication does not exist). There is hope.
// It is very disturbing that the program fails unless the webtogo.ora file is not
// in the current working directory. Because the OpenConnection functions of both
// the ResourceManager, and ConsolidatorManager both appear to need access to the
// webtogo.ora file, and they are finding them in the current directory, the
// logical conclusion is that both of the classes are attempting to open the
// webtogo.ora with the relative path webtogo.ora, and not the absolute path
// OraHomeLite/Mobile/Server/Bin/webtogo.ora. As this has to be the case, why
// is this very important fact not in the documentation? Or, am I wrong?
Connection conn = null;
try
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD);
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD,
//"jdbc:oracle:oci8:@WEBTOGO.WORLD");
conn = DriverManager.getConnection
("jdbc:oracle:oci8:@WEBTOGO.WORLD",
CONS_SCHEMA,DEFAULT_PASSWORD);
//conn = DriverManager.getConnection
//("jdbc:oracle:oci8:@WEBTOGO.WORLD",
//"SYSTEM","phwphw");
ConsolidatorXX.OpenConnection(conn);
catch (Throwable e)
e.printStackTrace(); //ignore error
// Publication name
Publication = "ZMTR1PUB";
try
ConsolidatorXX.DeinstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
System.out.println("Could not Deinstantiate Subscription ZMPT1UA");
e.printStackTrace(); //ignore error
// Line 448
// There is no Consolidator.OpenConnection in the orginal sample11.java code.
// Why?. It appears to be neccessary. The only way I can make the sample11 code
// or this program work is to open a jdbc connection with the Consolidator.OpenConnection
// function. I assume that somehow the Consolidator.OpenConnection function was
// deleted from sample11.java.
// This try to drop a publication index does not work, because when I try
// to recreate the index in the following code it warns me that I have a
// bad column name for the index. So it thinks the index still exist.
// Why?. How do I get rid of the index?
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItem("ZMTR1ITM");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublication(Publication);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
//ConsolidatorXX.CreatePublication(Publication, Consolidator.OKPI_CREATOR_ID,
//"zMTR1.%s", null);
ConsolidatorXX.CreatePublication(Publication, Consolidator.OKAPI_WINCE,
"zMTR1.%s", null);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.CreatePublicationItem("ZMTR1ITM","FIAFIELD","ZMTR1TBL", "F",
"SELECT * FROM FIAFIELD.ZMTR1TBL", null, null);
catch (Throwable e)
e.printStackTrace();
System.out.println("Begin of how can drop this index and get rid of the warning?");
// Line 522
// I defined the index ZMTR1IX1 originally on the variable subp, and did not get
// any warning. I then changed the index variable for the index to id, and started
// receiving the warning to check the index column for typographical errors. Even
// if I change the index variable back to subp, I continue to receive the warning.
// How do I get rid of the index and the warning, so I can recreate the index for
// another variable? I quess the real question is "How to I completely remove a
// publication, and all of its parts so I can start over?
try
ConsolidatorXX.CreatePublicationItemIndex(
"ZMTR1IX1", "ZMTR1ITM", "I", "id");
catch (Throwable e)
e.printStackTrace ();
System.out.println("End of how can drop this index and get rid of the warning?");
try
ConsolidatorXX.AddPublicationItem(
Publication, "ZMTR1ITM", null, null, "S", null, null);
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CreateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.InstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CloseConnection();
if(conn != null)
conn.close();
catch (Throwable e)
e.printStackTrace(); //ignore error
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
oracle.mobile.admin.ResourceManager.closeConnection();
End of Publish.java code
Begin Compile.bat
set CLASSPATH = .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\javac Publish.java
End Compile.bat
Begin Run.bat
set CLASSPATH= .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\java Publish
End Run.bat
Begin webtogo.ora
USE_SYSTEM_CLASSPATH = NO
MODE = SERVER
PORT = 80
BASE_URL=/webtogo
ADMIN_TNS_NAME=WEBTOGO.WORLD
ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
APPLET_USE_THIN_JDBC = YES
THIN_JDBC_URL=jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU
SITE_OFFLINE_PERIOD=0
CUSTOM_WORKSPACE=no
CUSTOM_DIRECTORY=myworkspace
DEFAULT_PAGE=myfirstpage.html
ADMIN_USER=8B37E78535B55525292A3A2929292999
ADMIN_PASSWORD=873515A838B85828292A3A2929292999
[EXTERNAL_AUTHENTICATION]
#CLASS=com.acme.SampleAuthenticator
# Web-to-go workspace's font
FONT_NAME=Arial
[FILESYSTEM]
#ROOT_DIR=%WEBTOGO_HOME%\server
#TYPE=O8
#TYPE=OL
#TYPE=OS
# Cache size in MBs
#CACHE_SIZE=10
MAX_CONNECTIONS=4
[DEBUG]
#ENABLE=YES
# The log file name.
#LOG_FILE=test.log
# Machine name and port where wsh.exe -m is running. Web-to-go
# will send debug output to that machine.
#MACHINE=
#PORT=100
[APPLICATIONS]
XMLFILE = ws1.xml
PACK_HELP=D:\OraLite501\mobile\doc\wtg\html\wtgdep.htm
[PUBLIC]
oracle.lite.sync.ConsolidatorServlet=/Consolidator
[CONSOLIDATOR]
# Installer will change these values
SERVER_VERSION=8.1.5
# 8.0.5 or 8.1.5
# Installer won't change these values
MAX_THREADS=3
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
TEMP=c:\\temp
WTG_PROXY_PORT=80
TRACE=NO
TRACE_ALL=NO
End webtogo.ora
Begin Mobile Server tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\OraLite501\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
WEBTOGO.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
WEBTOGO.WORLD.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
End Mobile Server tnsnames.ora file
Begin Database tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
INST1_HTTP.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
FIA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGGDRASILL.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
EXTPROC_CONNECTION_DATA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
End Database tnsnames.ora file -
Axis resource allocation and the MID-7654
Hello All,
I am currently transferring my application over to use the MID-7654 instead of third party drives. Below is the start up process I am using to allocate the axis resources:
//kill and disable all axes
flex_stop_motion(boardID,0,NIMC_KILL_STOP,0x000F);
flex_enable_axes(boardID,0,3,0x00);
//unmap all axis resources
flex_config_axis(boardID,NIMC_AXIS1,0,0,0,0);
flex_config_axis(boardID,NIMC_AXIS2,0,0,0,0);
flex_config_axis(boardID,NIMC_AXIS3,0,0,0,0);
flex_config_axis(boardID,NIMC_AXIS4,0,0,0,0);
//map encoder resources to axes 1 and 2
flex_config_axis(boardID,NIMC_AXIS1,NIMC_ENCODER1,0,0,0);
flex_config_axis(boardID,NIMC_AXIS2,NIMC_ENCODER2,0,0,0);
//enable axes 1 and 2
u8 mask = MASK1|MASK2;
status = flex_enable_axes(boardID,0,3,mask);
Basically, I want to use the encoder resources for each axis for position/velocity monitoring and control the analog outputs directly to change the torque of the motors. Since my impedance control software is closing the position and velocity loops, I do not want to use the PID controller onboard the PCI-7344.
The above code worked fine with the third party drive. However, after starting up my application with the MID drive, all of the orange inhibit LEDs turn on and remain that way (I assume it is to do with killing and disabling all of the axes and not mapping output resources to them). Since I wasn't previously using the inhibit output from the motion controller, my application worked fine with the third party drive (I was still able to read the encoder feedback information).
Also, when I was using the MAX '1-D interactive' interface to verify my encoder feedback, if I move either encoder immediately after initialization the 'Motor off' and 'Following error' lights turn red. I assume this is due to the encoder moving without a command sent from the motor).
Can anyone see any problems with the above code segment or suggest an initialization procedure that would solve my problems. Or if all else fails, is it possible to control the inhibit signals directly to enable/disable the axes on my own?
Wow... I certainly rambled on a bit there.... If you need clarification on any points let me know. Also, I am on a bit of a time crunch, so a prompt reply would be greatly appreciated.
Thanks,
ChadChad,
I'm a bit astonished that you don't want to use the PID controller on the board. Onboard PID control is one of the main reasons why you would like to use a motion control board instead of a simple multifunction I/O device. The onboard PID loop of the 7344 can run with up to 16 kHz with very low jitter whilst using the DACs directly from your host application will result in a control loop with less than 200 Hz and a high amount of jitter - even if you were using a real-time OS. This will result in poor control behavior.
This is caused by the architecture of the board. The DACs can be controlled directly by the DSP on the board with high rates in a determenistic way but the host can access them only through the board's µController that runs the host communication in 5 ms cycles that can't be synchronized with the application on the host PC. So for this usecase a combination of e. g. a PCI-6229 (multifunction DAQ board with 4 analog outputs) and a PCI-6601 (4 counters with direct quadrature encoder connectivity) would do a much better job at even a lower price.
With this said I really can't reccomend the usage of a PCI-7344 as a pure I/O-board. Please provide some information why you want/need to choose this approach. There are a lot of options to build customized motion control systems. Please follow this link for some further information.
A key feature of every control system is deterministic behavior so you will need to run your application on a real-time OS. Otherwise you won't be able to get a reliable control behavior.
I can give you some more specific advice if you post some background information about your application.
Best regards,
Jochen Klier
National Instruments Germany -
Newbie question about component and UDF usage.
This will be the 1st time I'm coding a component and UDF. I
kind of understand the concept but not sure about how to write it
in detail.Such as passing the parameter, etc.
I'm starting to write a user login, verifying users before
allowing them to enter into the app.
So I have 2 fields in my login form, Login and password.
Upon submitting this form, on the actionpage.cfm I'm calling
a component. This is how I call the component:
<CFINVOKE Component="cfc/loginaction"
Method="AuthentiCateUser" ReturnVariable="UserInfo">
Then in my Component I have the following:
<CFCOMPONENT>
<CFFUNCTION Name="AuthentiCateUser" RETURNTYPE="Query"
hint="Use for user login">
<CFARGUMENT Name="login" Type="Structure"
Required="true">
<CFARGUMENT Name="password" Type="Structure"
Required="true">
<!--- checking user authentication --->
<CFQUERY NAME="Authenticate" DATASOURCE="sendfast">
SELECT * FROM tblcustomer WHERE Login = '#Login#' AND
Password = '#Password#'
</CFQUERY>
<CFRETURN AuthentiCateUser>
</CFFUNCTION>
</CFCOMPONENT>
When I run this code, I got error, it said :
The parameter LOGIN to function AuthentiCateUser is required
but was not passed in.
The error occurred in
C:\CFusionMX\wwwroot\KDt_Mod\userloginaction.cfm: line 18
16 : <CFSET
UserLoginInfo["Password"]="#Form.Password#"> 17 : 18 :
<CFINVOKE Component="cfc/loginaction" Method="AuthentiCateUser"
ReturnVariable="UserInfo">
19 :
My question is:
What should I do in order to pass #Form.Login# and
#Form.Password# to my UDF within my component?
I'm using CFMX 6 and Micrisift SQL 8I've applied cfinvokeargument and my login and password were
passed to my component.
But I'm facing new problem: Where should I write my
authentication? should I write user authentication within my
component or
loginaction.cfm (the calling template)
What I mean by authentication is something like this:
<CFIF #Authenticate.RecordCount# IS NOT 0>
<cfset session.CustomerID
="#Authenticate.customerid#">
<cfset session.Name ="#Authenticate.Name#">
<CFCOOKIE NAME="UserLoginIn"
VALUE="12345_pn#Authenticate.customerid#">
<cflocation url="index.cfm?loc=home">
<CFELSE>
<script language="JavaScript">
alert("Username/password is not found, plese try again");
history.go(-1);
</script>
<cfabort>
</CFIF>
If I keep this code in my loginaction.cfm what is returned
from my function is not recognized by the component, the error said
Authenticate.RecordCount is not recognized.
Also I'm still confuse with what should I put in the
RETURNTYPE. If I put query, it gave me error, also, what is
returned by CFRETURN.
This is my component:
<CFCOMPONENT>
<CFFUNCTION Name="AuthentiCateUser" RETURNTYPE="Query"
hint="Use for user login">
<CFARGUMENT Name="login" Type="Structure"
Required="true">
<CFARGUMENT Name="password" Type="Structure"
Required="true">
<!--- checking user authentication --->
<CFQUERY NAME="Authenticate" DATASOURCE="sendfast">
SELECT * FROM tblcustomer WHERE Login = '#Login#' AND
Password = '#Password#'
</CFQUERY>
<CFRETURN AuthentiCateUser>
</CFFUNCTION>
</CFCOMPONENT> -
SNP and DP T.Code and Tables
Hi
Can anyone send me SAP APO (SNP, DP) module transaction code and standard Tables
Thanks & Regards,
RamFollowing are some transactions:
Hope it helps:::::
TCode Text
/INCMD/UI Maintenance of Interchageable groups
/SAPAPO/86000118
/SAPAPO/AC03 Product Availability
/SAPAPO/AC04 ATP Simulation
/SAPAPO/AC05 Time Series
/SAPAPO/AC06 Temporary Quantity Assignments
/SAPAPO/AC07 Exclusive Lock Records
/SAPAPO/AC08 Generate Safety Stock Requirement
/SAPAPO/AC42 Display Product Allocation Situation
/SAPAPO/ADVM Macro Workbench
/SAPAPO/AHTS1 Start-up of Action Handler
/SAPAPO/AMON1 Alert Monitor
/SAPAPO/AMONMSG Settings 'Automatic Sending'
/SAPAPO/AMONMSG_SEND Sending Alerts
/SAPAPO/AMON_REORG Delete Database Alerts
/SAPAPO/AMON_SETTING Alert Monitor Settings
/SAPAPO/ATP2PPDS ATP -> PP/DS Conv. in Background
/SAPAPO/ATPC00 Global Settings
/SAPAPO/ATPC01 ATP Group
/SAPAPO/ATPC02 Business Event
/SAPAPO/ATPC03 Maintain Categories
/SAPAPO/ATPC04_05 Maintain ATP Check Control
/SAPAPO/ATPC06 Maintain Check Mode
/SAPAPO/ATPC07 Maintain Check Mode
/SAPAPO/ATPC08 Maintain Requirements Profile
/SAPAPO/ATPCH01 Maintain ATP Characteristic View
/SAPAPO/ATPCLOG_DEL ATP: Delete C Log Files
/SAPAPO/ATPCQ_AREA Maintain Plng Area Assignments
/SAPAPO/ATPCQ_CHECK Check Prod. Allocations Customizing
/SAPAPO/ATPCQ_CUBE Maintain InfoCube Assignment
/SAPAPO/ATPCQ_GENER Generate Objects
/SAPAPO/ATPCQ_GRP Maintain Product Allocation Group
/SAPAPO/ATPCQ_LST Maintain Seq. of Prod. Alloc.Proced.
/SAPAPO/ATPCQ_OBJ Maintain Product Allocations Object
/SAPAPO/ATPCQ_PRO Maintain Product Alloc. Procedure
/SAPAPO/ATPCQ_RESET Reset Time Stamp
/SAPAPO/ATPCQ_TSTMP APO: Generation Status, Transfer
/SAPAPO/ATPLOG Activate ATP Application Log
/SAPAPO/ATPLOG_DEL ATP: Delete Application Log
/SAPAPO/ATPLOG_DSP ATP: Display Application Log
/SAPAPO/ATPQ_ALERT APO: Product Allocations, Shortage
/SAPAPO/ATPQ_CHKCHAR Check Characteristics Combinations
/SAPAPO/ATPQ_CHKCUST Product Alloc. Assgmt, Sales Order
/SAPAPO/ATPQ_CHKUSG Check Product Allocation Assignment
/SAPAPO/ATPQ_COLLECT Generate Coll. Prod. Alloc. Charact.
/SAPAPO/ATPQ_KCGRP_U Product Allocations: Update Assgmt
/SAPAPO/ATPQ_PAREA_C Copy Characteristics Combinations
/SAPAPO/ATPQ_PAREA_K Copy Characteristics Combination
/SAPAPO/ATPQ_PAREA_R Product Allocations from Plan. Area
/SAPAPO/ATPQ_PAREA_W Product Allocations in Plan. Area
/SAPAPO/ATPTUBE_DISP Display Parameter Buffers
/SAPAPO/ATREE_DSP ATP: Display ATP Tree Structures
/SAPAPO/BLRG01 Generation of Reqmnts from Blocks
/SAPAPO/BOP ATP: Batch Backorder Processing
/SAPAPO/BOPI Backorder Processing (Interactive)
/SAPAPO/BOP_COMPARE Backorder Processing: Comparison
/SAPAPO/BOP_DELETE Delete Backorder Processing
/SAPAPO/BOP_MONITOR Monitor Backorder Processing
/SAPAPO/BOP_RESULT Backorder Processing Results
/SAPAPO/BOP_RUNTIME Backorder Processing: Runtimes
/SAPAPO/BOP_UPDATE Backorder Processing: Update
/SAPAPO/BOP_VS ATP: Backorder Processing for VS
/SAPAPO/BOP_WORKLIST ATP, BOP: Worklist
/SAPAPO/BP1 Send Transaction Data
/SAPAPO/BP2 Delete Transaction Data
/SAPAPO/C3 Display Application Log
/SAPAPO/C4 Maintenance of global parameters
/SAPAPO/C41 Activate/Deactivate Login
/SAPAPO/C5 Send Planning Results to OLTP
/SAPAPO/C6 Delete Application Log
/SAPAPO/C7 Find Entries
/SAPAPO/CALENDAR Calendar
/SAPAPO/CC Core Interface Cockpit
/SAPAPO/CCR CIF_DELTAREPORT3
/SAPAPO/CCRR CIF Compare/Reconcile Reorganization
/SAPAPO/CDPS0 DPS Variable View
/SAPAPO/CDPS1 DPS View 1
/SAPAPO/CDPS2 DPS View 2
/SAPAPO/CDPS3 DPS View 3
/SAPAPO/CDPSB0 Production Planning Run
/SAPAPO/CDPSB1 Prod. Planning Run in the Background
/SAPAPO/CDPSC6 Customizing: Setup Group Maintenance
/SAPAPO/CDPSC7 Maintenance of Setup Matrices
/SAPAPO/CDPSS0 Simulation Version
/SAPAPO/CDPS_REPT Evaluations
/SAPAPO/CDPS_SETUP List Output for Setup Matrix
/SAPAPO/CLPIPCAL Collaborative Promotion Planning
/SAPAPO/CLPISDP Collab. Supply and Demand Planning
/SAPAPO/CLPITPL Collaborative Transport. Planning
/SAPAPO/CLPRPDEL CLP: Delete RFQs
/SAPAPO/CLPRPIN Incoming RFQ Processes
/SAPAPO/CLPRPOUT Outgoing RFQ Processes
/SAPAPO/CLPRPSTART CLP: Publish RFQs
/SAPAPO/CLP_PBPULL Read Time Series
/SAPAPO/CLP_PBPUSH Send Time Series
/SAPAPO/CLP_SETTINGS Collaboration Partners
/SAPAPO/CMDS_DEFCNF Maintain Default Confirm. Profiles
/SAPAPO/CMDS_DEFCNTR Maintain Default Control Profiles
/SAPAPO/CMDS_DEL Delete Releases and Confirmations
/SAPAPO/CMDS_SCO1 Maintain Sales Scheduling Agreements
/SAPAPO/CMDS_SCO2 Delete Sales Scheduling Agreements
/SAPAPO/CMDS_SCO4 Manage Fiscal Year
/SAPAPO/CMDS_STPD Define Sold-To Party Determination
/SAPAPO/CMDS_STPSR Define Inbound Release Processing
/SAPAPO/COMP_VARIANT Comparison of Product Variants
/SAPAPO/CONSCHK Model Consistency Check
/SAPAPO/CONSPRF Model Consistency Check: Profile
/SAPAPO/CONSSHOW Read log from database
/SAPAPO/CPP CIF Postprocessing
/SAPAPO/CPP1 CIF Postprocessing: Multiple Call
/SAPAPO/CPP2 Display CIF Postprocessing Records
/SAPAPO/CPPA CIF Error Handling: Alert
/SAPAPO/CPPR Reorg. CIF Postprocessing Records
/SAPAPO/CQ SCM Queue Manager
/SAPAPO/CQINW qRFC Monitoring for Inbound Queues
/SAPAPO/CSNP Costs Maintenance: SNP
/SAPAPO/CSPRF Maintain TSP Profile
/SAPAPO/CTM Capable-to-Match: Main Screen
/SAPAPO/CTM01 CTM: Consistency Check
/SAPAPO/CTM02 CTM: Stock Limits
/SAPAPO/CTM10 CTM: Distribute Receipt Objects
/SAPAPO/CTMAPLOG CTM Logs
/SAPAPO/CTMB Execute CTM in Background
/SAPAPO/CTMCUST CTM: Global Customizing
/SAPAPO/CTMMSEL Selection of CTM Master Data
/SAPAPO/CTMORDSEL CTM: Maintain Order Selection
/SAPAPO/CTMSCPR Profile Maint. Supply Categorization
/SAPAPO/CTMSSTRAT Define CTM Search Strategy
/SAPAPO/CTMTP Transport CTM Profile
/SAPAPO/CTMTSTR Define CTM Time Stream
/SAPAPO/CTMVIEWER CTM: Call Viewer
/SAPAPO/CTRP Costs Maintenance - Vehicle Sched.
/SAPAPO/CULL_RTO_DEL Delete Production Data Structure
/SAPAPO/CURTO_GEN_DP Generate DP PDS
/SAPAPO/CURTO_SIMU Display Production Data Structures
/SAPAPO/CW qRFC Monitoring
/SAPAPO/DFCT Maintain Distribution Function
/SAPAPO/DISPLAY_CONF Display of DelSched and Confirmation
/SAPAPO/DMP1 Display Consumption Situation
/SAPAPO/DMP2 Generate Planned Independent Reqmts
/SAPAPO/DM_PEGCHECK Consistency Check Pegging Areas
/SAPAPO/DPC3 Change Overview
/SAPAPO/DPLSPLIT Deployment Stk Transfer Prioritizatn
/SAPAPO/GEN_CHK_PDS Generate iPPE Check PDS
/SAPAPO/GEN_PDS Generation of iPPE PDS
/SAPAPO/INCMD_MODEL Model Assignment
/SAPAPO/IPM01 integrated profile management
/SAPAPO/LCOUT Release from SNP -> DP
/SAPAPO/LOC3 Master Data: Locations
/SAPAPO/LOCTZCALC Calculate transport zone coordinates
/SAPAPO/LOC_CD_READ Change Documents for Location
/SAPAPO/LOC_DEL_LOG Location: Delete Application Log
/SAPAPO/LOC_DISP_LOG Location: Display Application Log
/SAPAPO/MASSGEOCODE Location: Mass-Geocoding
/SAPAPO/MAT1 Product
/SAPAPO/MC62 Maintain Characteristic Values
/SAPAPO/MC77 Change Selection
/SAPAPO/MC7A Location Split
/SAPAPO/MC7B Product Split
/SAPAPO/MC8D Mass Processing: Create Planning
/SAPAPO/MC8E Mass Processing: Change Planning
/SAPAPO/MC8F Delete Planning Job
/SAPAPO/MC8G Schedule Mass Processing
/SAPAPO/MC8I Mass Processing: Check Planning
/SAPAPO/MC8J Copy Mass Processing Jobs
/SAPAPO/MC8K Logs
/SAPAPO/MC8S Transfer Profiles
/SAPAPO/MC8T Activity
/SAPAPO/MC8U Transfer Profile
/SAPAPO/MC8V Calculate Proportional Factors
/SAPAPO/MC90 Release to Supply Network Planning
/SAPAPO/MC96B Maintain Forecast Profile
/SAPAPO/MCPSELDEL Delete selections
/SAPAPO/MD74 Reorganization: Adapt Indep.Reqmts
/SAPAPO/MNTPROF01 Maintain Display Profile
/SAPAPO/MP31 Maintain Promotion Attribute Types
/SAPAPO/MP32 Maintain Cannibalization Group
/SAPAPO/MP33 Maintain Promotion Key Figures
/SAPAPO/MP34 Supply & Demand Planner: Init.Screen
/SAPAPO/MP40 Maintain Promotion Bases
/SAPAPO/MP41A Maintain Settings for Report
/SAPAPO/MP41B Promotion Reports
/SAPAPO/MP42 Promotion Management
/SAPAPO/MSDP_ADMIN S&DP Administration
/SAPAPO/MSDP_FCST1 Lifecycle Settings
/SAPAPO/MSDP_FCST2 Assign Forecast Profiles
/SAPAPO/MSDP_SB Safety Stock Calculation
/SAPAPO/MSP01 Maint. and Service Planning Board
/SAPAPO/MSP_CYCMAINT Cycle Maintenance
/SAPAPO/MSP_ESIM MSP Easy Simulation
/SAPAPO/MSP_MOBJ Maintenance of one Maint. Object
/SAPAPO/MSP_PERFPROF Maintenance of Performance Profile
/SAPAPO/MTL01 Maintenance Task List
/SAPAPO/MVM Model/Planning version
/SAPAPO/OM03 Test Program for liveCache and LCA
/SAPAPO/OM04 Display of Current LCA Version
/SAPAPO/OM11 Log
/SAPAPO/OM12 Delete Log
/SAPAPO/OM13 Analyze liveCache and LCA Objects
/SAPAPO/OM16 Data Viewer
/SAPAPO/OM17 Data Reconciliation
/SAPAPO/OM25 Daily Reorganization of APO
/SAPAPO/OO_PPM_CONV Maint. Mode Comb. for PPM Conversion
/SAPAPO/OPT03 Optimizer User Display
/SAPAPO/OPT09 Optimization Version Display
/SAPAPO/OPT11 Log display
/SAPAPO/OPT12 Opt. server process overview
/SAPAPO/OPT_PRIOPROF SNP Opt.: Priority Profile
/SAPAPO/OPT_STOP Terminate Optimization Runs
/SAPAPO/PCMT Production Campaign
/SAPAPO/PDSLOG Log of PDS Generation
/SAPAPO/PEG1 Pegging Overview
/SAPAPO/PMON Plan Monitor
/SAPAPO/PMONDEF Definition: Key figure schema
/SAPAPO/POM1 Planned Order Management
/SAPAPO/POV1 Product Overview Transaction
/SAPAPO/PPC1 Backflush Entry
/SAPAPO/PPC2 Display Backflush
/SAPAPO/PPE iPPE Workbench Professional
/SAPAPO/PPELUI iPPE Workbench Express
/SAPAPO/PPFSCO Output of Confirmations
/SAPAPO/PPL1 Production List
/SAPAPO/PPM_CONV Conversion of PP/DS PPMs to SNP PPMs
/SAPAPO/PPM_CONV_310 Report for Generating SNP PPMs
/SAPAPO/PPM_CONV_LOG Log of SNP-PPM generation
/SAPAPO/PPM_DEL Mass Deletion of Plans and PPMs
/SAPAPO/PPT1 Product Planning Table
/SAPAPO/PROD_CD_READ Change Documents for Produkt
/SAPAPO/PSTRUCONS Plng Obj. Struct. Consistency Check
/SAPAPO/PWBSCH1 Create SA Release(s)
/SAPAPO/PWBSCH2 Release Output
/SAPAPO/PWBSCH3 Process Sched. Agreement Releases
/SAPAPO/PWBSCH4 Enter Confirmation
/SAPAPO/PWBSRC1 Ext. Procure. Rltnshps Maintenance
/SAPAPO/PWBSRC2 Delete External Proc. Relationships
/SAPAPO/RBA04 Integrated Rule Maintenance
/SAPAPO/RBAC01 Maintain Rule Strategy Determination
/SAPAPO/RELHSHOW Hierarchy Maintenance
/SAPAPO/REL_TO_OLTP Direct Release InfoProvider to R/3
/SAPAPO/REL_TO_SNP Direct Release InfoProvider to SNP
/SAPAPO/REORG_WUL Reorg. of Where-Used-Lists in LC
/SAPAPO/RES01 Change Resources
/SAPAPO/RET2 Restrictions Maint.- Create & Change
/SAPAPO/RET_EVAL Restriction Evaluation
/SAPAPO/RET_RP Restrictions & Reservation Planning
/SAPAPO/RLCDEL Delete Orders from Livecache
/SAPAPO/RLGCOPY Realignment
/SAPAPO/RRP1 Requirements View
/SAPAPO/RRP2 Process Order
/SAPAPO/RRP3 Product View
/SAPAPO/RRP4 Receipts view
/SAPAPO/RRP7 Mass Conversion of Orders
/SAPAPO/RRP8 ATP Check for REM Planned Orders
/SAPAPO/RRPEVAL Log for Last Planning Run
/SAPAPO/RRPLOG1 Display Logs
/SAPAPO/RRPLOG2 Delete Logs
/SAPAPO/RRP_ATP2PPDS ATP Tree Structure Conversion
/SAPAPO/RRP_NETCH Planning File Entries
/SAPAPO/RRP_SNP2PPDS Conversion SNP -> PP/DS
/SAPAPO/RSP_CONSIS Cons. Check RSC + Per.-Slot Creation
/SAPAPO/RSP_DBORSHOW Display Configuration for Orders
/SAPAPO/RSP_DCR Releasing Daily Packages
/SAPAPO/RSP_DICP Daily Package Creation
/SAPAPO/RSP_D_DEL Delete Delta Records
/SAPAPO/RSP_EXPLAIN Explanation Facility
/SAPAPO/RSP_G1 Planning Table
/SAPAPO/RSP_INFO Information Center RP
/SAPAPO/RSP_LC01 Initialize Time Series
/SAPAPO/RSP_LC03 Update Time Series
/SAPAPO/RSP_LC04 Restore Time Series
/SAPAPO/RSP_MCSC Manuf.Compl. Proposed Orders f.Stock
/SAPAPO/RSP_P1 Copy Orders
/SAPAPO/RSP_P2 Start Medium-Term Planning
/SAPAPO/RSP_P3 Reset Result of Medium-term Planning
/SAPAPO/RSP_RD_SIMU Simulation of Restriction Explosion
/SAPAPO/RSP_RSC Rescheduling
/SAPAPO/RTO_ORD_COMP Compare PP/DS PDS (R/3)
/SAPAPO/SCC02 Supply Chain Cockpit
/SAPAPO/SCC03 PPM Maintenance
/SAPAPO/SCC07 Supply Chain Engineer
/SAPAPO/SCC_TL1 Transportation Lanes
/SAPAPO/SCC_TL2 Mass Creation of Transport Rltnships
/SAPAPO/SCC_TQ1 Quota Arrangements
/SAPAPO/SCC_USR_PROF SCC Cockpit User Settings
/SAPAPO/SCE_USR_PROF SCC Engineer User Settings
/SAPAPO/SCHED_TEST Simul. Transp. & Shipment Scheduling
/SAPAPO/SDP8B Define Planning Book
/SAPAPO/SDP94 Supply & Demand Planner: Init.Screen
/SAPAPO/SDPALPR Assign Planners to Alert Profiles
/SAPAPO/SDPPLBK Assign User to Planning Book
/SAPAPO/SDPT SD Sched. Agrmt. Prod.Planning Table
/SAPAPO/SDPUSET SDP User Settings
/SAPAPO/SDRQCR21 Correction Report /sapapo/sdrqcr21
/SAPAPO/SEQ1 Interactive Sequencing
/SAPAPO/SEQ2 Model Mix Planning Run
/SAPAPO/SNP01 SNP Run
/SAPAPO/SNP02 Deployment
/SAPAPO/SNP03 Call Deployment Optimizer
/SAPAPO/SNP04 Transport Load Builder
/SAPAPO/SNP05 Capacity leveling
/SAPAPO/SNP06 Hierarchical Planning Disaggregation
/SAPAPO/SNP103 Maintain TLB Profile
/SAPAPO/SNP113 SNP: Maintain Costs
/SAPAPO/SNP2PPDS SNP -> PP/DS Conv. in Background/SAPAPO/SNP94 SNP: Interactive Planning
/SAPAPO/SNPAPLOG Application Logs
/SAPAPO/SNPDRP DRP: Interactive Planning
/SAPAPO/SNPFCST Release SNP Forecast
/SAPAPO/SNPLLC Low-Level Code Determination
/SAPAPO/SNPOP Call Up SNP Optimizer
/SAPAPO/SNPOPLOG SNP Optimizer Log Data
/SAPAPO/SNPSA Sched. Agreemt: Interactive Planning
/SAPAPO/SNPSOP SOP: Interactive Planning
/SAPAPO/SNPSRC Call: Sourcing of Forecast in SNP
/SAPAPO/SNPTLB TLB: Interactive Planning
/SAPAPO/SNPVMI SNP: Interactive Planning with VMI
/SAPAPO/SUPCAT CTM Supply Category Maintenance
/SAPAPO/TI01 Evaluation of Production Tracking
/SAPAPO/TLBPRF TLB Profile Maintenance
/SAPAPO/TR30 Maintain DP/SNP Time Buckets Profile
/SAPAPO/TR32 Periodicities for Planning Area
/SAPAPO/TR_CD_QUOTA Change Docs for Quota Arrangements
/SAPAPO/TR_CD_TLANE Change Docs for Transportation Lanes
/SAPAPO/TR_DELTRPR Deletion of Prod.-Spec. Trnsp. Lane
/SAPAPO/TR_IGS_BPSEL Scheduling of GIS Preselection
/SAPAPO/TR_IGS_BUTRM Update of GIS Data
/SAPAPO/TR_IGS_RPSEL Reorganization of GIS Preselection
/SAPAPO/TSCONS Time Ser. Network Consistency Check
/SAPAPO/TSCOPY Copy/Version Management
/SAPAPO/TSCUBE Load Planning Area Version
/SAPAPO/TSKEYFMAIN Mass Maint. for Time Series Key Fig.
/SAPAPO/TSLCREORG Check LC Time Series Master Data
/SAPAPO/TSPSTRU Toolbox for Planning Object Struct.
/SAPAPO/TTC1 Schedule Maintenance
/SAPAPO/TTV1 Maintain Validity Area
/SAPAPO/TTW1 Itinerary Maintenance
/SAPAPO/VERCOP Copy Version
/SAPAPO/VERDELLD Delete a planning version
/SAPAPO/VERMER Merge Planning Versions (SNP)
/SAPAPO/VERMRM Merge Versions: Messages
/SAPAPO/VS01 VS Interactive Planning
/SAPAPO/VS05 Schedule optimization run
/SAPAPO/VS10 Transportation Service Provider Sel.
/SAPAPO/VS11 TPVS: Define Delivery/Pickup Windows
/SAPAPO/VS12 TP/VS: Define Compatibilities
/SAPAPO/VS50 Orders for Delivery Generation
/SAPAPO/VS501 Schedule Delivery Generation
/SAPAPO/VS51 Change Plan. Shipments to Shipments
/SAPAPO/VS511 Transfer Planned Shipments to OLTP
/SAPAPO/VS52 Check Release of Planned Shipments
/SAPAPO/VS521 Check Release of Planned Shipments
/SAPAPO/VS53 Deleting deliveries
/SAPAPO/VS531 Delete Deliveries
/SAPAPO/VS54 Deleting Shipments
/SAPAPO/VS541 Delete Shipments
/SAPAPO/VS551 Release Shipments in the Background
/SAPAPO/VS60 Monitor for OLTP Publication
/SAPAPO/VS70 Apply Split Rules
/SAPAPO/VS71 Determine Split Rules
/SAPAPO/VS72 Maintain Access Sequence for Splits
/SAPAPO/VS73 Maintain Split Rules
/SAPAPO/VSHIST Display the Change History
/SAPCND/AO01 Conditions: V_T681F for O RB
/SAPCND/AO03 Create condition table
/SAPCND/AO04 Change condition table
/SAPCND/AO05 Display condition table
/SAPCND/AO06 Condition Type: Rules-Based ATP
/SAPCND/AO07 Access: Maintain (Rules-Based ATP)
/SAPCND/AO08 Conditions: Procedure for O RB
/SAPCND/AO11 Create Rule Determination
/SAPCND/AO12 Change Rule Determination
/SAPCND/AO13 Display Rule Determination
/SAPCND/AO14 Copy Rule Determination
/SAPCND/AU11 Create Scheduling Step
/SAPCND/AU12 Change Scheduling Step
/SAPCND/AU13 Display Scheduling Step
/SAPCND/AU14 Copy Scheduling Step
/SCMB/ODM_CHECK ODM: Check Customizing
/SCMB/ODM_DATA_CHECK ODM: Check Data Consistency
AHTGL01 Action and Parameter Maintenance
AHTGL02 Definition of Action Points
BAPI BAPI Explorer
CL02 Classes
CL20N Object Assignments
CL22N Assign Class to Superior Classes
CL24N Class Assignments
CT04 Characteristics
LC10 liveCache Assistant
LSMW Legacy System Migration Workbench
MASSD Mass Maintenance
MDEM Orders with Explosion Errors
MDMD Matrix for Product/Location
MDRPM Control Data for RPM Products
OPPE13 User Assgmt: iPPE WB Professional
OPPELUI02 User Assignment: iPPE WB Express
PPECHK iPPE Consistency Check (Prod. Vers.)
PPEHDR01 Create a Production Version
PPEHDR02 Change a Production Version
PPEHDR03 Display a Production Version
RPMBAL Line Balancing for Demand Program
RPMCALL Explosion for RPM
RPMEVAL Evaluations
RPMLOG RPM Log
RPMPERF Display Performance Data
RPMPLF Planning Flags for Planning Matrices
RPM_DATEVECTORS_REOR Reorganize Table of Periods in LC
RPM_DATEVECTOR_COMPU Calculate Table of Periods f. Res.
RPM_OM_DATEVECTOR_SH Display Table of Periods from LC
RPM_RESOURCE_TSTREAM Display Resource Time Stream
RSKC Maintaining the Permittd Extra Chars
RSPC Process Chain Maintenance
RSSM Authorizations for Reporting
RZ20 CCMS Monitoring
SLG2 Application Log: Delete logs
SM37 Overview of job selection
SMQ1 qRFC Monitor (Outbound Queue)
SMQ2 qRFC Monitor (Inbound Queue)
S_AP5_28000002
S_AP8_94000074
S_AP8_94000284
S_AP9_75000079 IMG Activity: APO_PPS_CDPSC0
S_AP9_75000085 IMG Activity: APO_PPS_CDPSC8
S_AP9_75000086 IMG Activity: APO_PPS_CDPSC5
S_AP9_75000087 IMG Activity: APO_PPS_CDPSC4
S_AP9_75000088 IMG Activity: APO_PPS_CDPSC3
S_AP9_75000089 IMG Activity: APO_PPS_CDPSC2
S_AP9_75000090 IMG Activity: APO_PPS_CDPSC1
S_AP9_75000095 IMG Activity: APO_SNP_SNP112
S_AP9_75000101 IMG Activity: APO_SNP_SNP107
S_AP9_75000102 IMG Activity: APO_SNP_SNP105
S_AP9_75000130 IMG Activity: APO_ALLG_TRANS
S_AP9_75000138 IMG Activity: APO_ALLG_CAL
S_AP9_75000141 IMG Activity: APO_PPS_ROUNDPRF
S_AP9_75000142 IMG Activity: APO_DEMPL_BEDARF
S_AP9_75000146 IMG Activity: APO_DEMPL_WORK
S_AP9_75000169 Call the IMG Activity
S_AP9_75000183
S_AP9_75000184
S_AP9_75000202
S_AP9_75000203
S_AP9_75000206
S_AP9_75000212
S_AP9_75000249
S_AP9_86000053
S_AP9_86000062 IMG Activity: APO_SNP_SNP120
S_AP9_86000161
S_APO_12000024
S_APO_12000025
S_APO_12000026
S_APO_12000035
WUF Where-Used List
Tables:
Tables where SALES ORDER Data is stored in APO
In addition to the requirements in SAP liveCache, the SD order tables are also included in the comparison with SAP R/3. Data is stored in these tables that is required for SAP APO functions from the area of Global ATP, such as the check against product allocations and backorder processing.
Both the existence and the consistency of the stored data is checked, based on the most important fields, as well as on the connection between main item(s) and subitem(s) in the following tables:
· /sapapo/posmapn (mapping the item)
· /sapapo/ordadm_h (order header)
· /sapapo/ordadm_i (order item)
· /sapapo/schedlin (order schedule line)
· /sapapo/obref (object reference)
· /sapapo/sdfield (SD order/delivery: Item additional data, also called 'field catalog')
· /sapapo/ciflooku (CIF lookup table)
The following inconsistencies can arise:
· r3obj : R/3 object of item in table /sapapo/posmapn
· atpcat: ATP category of item in table /sapapo/ordadm_i
· chmod: Check mode of item in table /sapapo/ordadm_i
· pstyv: Item category of item in table /sapapo/ordadm_i
· from_time: Schedule line date in table /sapapo/schedlin
· to_time: Schedule line date in table /sapapo/schedlin
· uepos: Assignment of higher-level (main) item
(Mapping in table /sapapo/posmapn and entry table in /sapapo/sdfield)
· wmeng: Requested quantity in table /sapapo/schedlin
· edatu: Requested delivery date in table /sapapo/schedlin
· obref: Object reference between order and delivery item in table /sapapo/obref
· matnr (MainItem)/matnrMItem: Product of main item in table /sapapo/ordadm_i
· werks (MainItem)/werksMItem: Plant of main item in table /sapapo/ordadm_i
· lgort (MainItem)/lgortMItem: Storage location of main item in table /sapapo/ordadm_i
· Account assignment (MainItem)/accMItem: The account assignment of the main item, that is, the pegging area from table /sapapo/ordadm_i does not correspond to the account assignment in SAP R/3 (vbap-sobkz, vbap-vbeln and vbap-posnr)
Important Tables in R/3
Table Remarks
QTVB Product Allocation: Allocation used by Customer Order* Use this table to find allocation assignment by Sales Order
Important Tables in APO
Table Remarks
/SAPAPO/TBQTVB ATP: Parameter Buffer, Product Allocation Assignment
/SAPAPO/PAGZE001 PAG-Z001 Product Allocations: Characteristic Value* This table is generated when a Product Allocation Group is defined. Use it to convert the GUID into a CVC.
/SAPAPO/MATKEY Product Master* Use it to convert Material GUID into a material number.
/SAPAPO/MATLOC Location product Master* Use it to see valid material plant combinations (GUIDs) in APO.
/SAPAPO/MATMAP Mapping Table for Products* Use it to see mapping of material numbers in R/3, APO and GUID
/SAPAPO/LOC Locations* Use it to convert Location GUID into a Location number.
/SAPAPO/QTTAB Product Allocations: Schedule Line
/SAPAPO/SDQTVB SD Order: Product Allocation Assignment* Use it to see detailed allocation assignment by Sales Order
/SAPAPO/POSMAPN Order Items Mapping Table*Use to get GUID for Sales Orders
/sapapo/treqires- All the confirmed qty and confirmed timestamp for order transaction GUID
CDHDR, CDPOS- Broader- All changes
/sapapo/DMCP
R-Delete
N-Create
C-Change -
Create a resource filter and add/redefine a property value to a resource?
Hello,
I need an advice how to create a resource filter and add a property to a resource. I already created the project and after creating myfilter.java automatically by using the "Service, filter and scheduler taks generation" in my developer studio, there's a filter() method where the filtering has to be implemented. Here I need an example how to read the resource path and add or redefine a property value. (In this case the property value depends on the resource path) So I also need to know, how to get the ressource path. Can anybody please support me with some example code?
Thanks in advance
Cheers
SteffenHi Jaiswin,
I need to enter 3 formula:
Setup
Production
Teardown
In PP this is standard but in PP-PI Resource I only see one field 'other formula'.
How do I enter more then one formula?
Can it be done in PP-PI?
Thanks
Stuart -
Help in obatinin SD certification code and material
Hi SD Guru's,
I am looking to get certified on SD. and i am having a difficult time finding the correct resources to help me understand, hwo to prepare for the SD certification and also obtain useful SD material online. looking for recommendation to the SD codes and related material to follow, in preparation for the exam.
Will be looking forward to a favorable response in this regard.
Thanks in advance.Dont post the same question multiple times. Already you have posted the same question which has been moved to SAP Certified Professional forum.
G. Lakshmipathi -
ORA-00054: resource busy and acquire with NOWAIT specified
We are frequently getting ORA-00054: resource busy and acquire with NOWAIT specified error in production database for a application user group. Production database is oracle 10g R 10.2.0.5.0 on sun solaris. The app user group is telling that the code is not changed from many years. They wants this to be resolved on h.priority. The tables which are getting this error has clob fields. I rebuilded indexes in QA environment & they ran it again they are getting the same error.
I asked to see select for update nowait clause's carefully. They said everything is fine. Please let me know any solution if any one is getting this kind of error. Thanks.Has anything changed compared to previously when these errors didn't happen?
Not necessarily application code but
- Database version
- patches
- indexes
- data volumes
- number of clients
etc, etc
What led you to rebuild the indexes?
As for suggested solutions, they completely depend on the specifics of your situation.
Do you know that the SELECT FOR UPDATE is raising the ORA-00054?
Something else has the relevant resource locked in a non-shareable way - you need to find out what.
It sounds like the most likely candidate is another session that has issued a SELECT FOR UPDATE and locked some of the same row(s).
It's good that you can reproduce on QA rather than just production.
Maybe you can manually issue the failing SELECT FOR UPDATE statement but with WAIT rather than NOWAIT and see if that helps you figure out blockers, etc.
Further analysis required at your end. -
Set resource type and projectid
Hello together,
we want transform a xml-document in a xml-form. Therefore we had to change/set the resource type and the projectid to create xml-forms for form based publishing.
I tried this code but it doesn't work.
String namespace = "http://sap.com/xmlns/cm/app/xmlforms/<projectid>";
String name = "resourcetype";
IMutablePropertyMap mutableProperty =null;
mutableProperty = new MutablePropertyMap();
IPropertyName propertyName = new PropertyName(namespace, name);
mutableProperty.put(property);
resource.setProperty(mutableProperty);
Has anybody an idea??
Regards TheresaThank you very much....
I solved it with the code
String namespace = "http://sap.com/xmlns/cm/app/xmlforms/";
String name = "resourcetype";
IPropertyName propertyName = new PropertyName(namespace, name);
Boolean value = new Boolean(true);
IProperty property = new Property(propertyName, value);
IMutableProperty mutableProperty = property.getMutable();
mutableProperty.setBooleanValue(true);
resource.setProperty(property);
You know something about setting the project id???
Regards Theresa -
How to find process causing "ORA-00054: resource busy and acquire with NOWAIT specified"
Hello there,
ENV: Oracle 10gR2 64bit on ASM, RHEL 64bit
Application team has reported "ORA-00054: resource busy and acquire with NOWAIT specified" during the batch process in production env. This is happening for last couple of days. When this batch process is restarted in the morning, this error does not appear.
I understand that this error is raised when one process tries to eecute some DDL on a table while another process is performing DML (or hasn't issued COMMIT/ROLLBACK after the DDL).
Since this error is occurring at night (around 3:00am) during the batch process, is there a way to find out on table/object is contention happening OR which process is causing this error? The batch process cannot be modified to add debug messages because it is in Production.
Please advise.
Best regardsuser130038 wrote:
Hello there,
ENV: Oracle 10gR2 64bit on ASM, RHEL 64bit
Application team has reported "ORA-00054: resource busy and acquire with NOWAIT specified" during the batch process in production env. This is happening for last couple of days. When this batch process is restarted in the morning, this error does not appear.
I understand that this error is raised when one process tries to eecute some DDL on a table while another process is performing DML (or hasn't issued COMMIT/ROLLBACK after the DDL).
Since this error is occurring at night (around 3:00am) during the batch process, is there a way to find out on table/object is contention happening OR which process is causing this error? The batch process cannot be modified to add debug messages because it is in Production.
Please advise.
Best regards
>The batch process cannot be modified to add debug messages because it is in Production.
I suspect more than one job is running concurrently against the DB; otherwise not error would occur.
Of course the batch process CAN be modified, but some PHB has decided to eliminate that option.
The Oracle database is at the mercy of the application code.
If the application code is poorly instrumented, then live with what exists or improved the code to facilitate isolating the bug.
You could delay the start of one of the jobs & then hope the error no longer occurs. -
Create UDT and UDF while installing theAdd-on
Dear Sir,
Can someone help me by providing me code sample of how can i create UDT and UDF into SAP BO while installing my Add-On.
Thanks in advance
Best RegardsHi Mary,
Please refer to this thread database
Regards
Aravind -
My ipod touch is not listed as a device when connected to my computer. As suggested I attempted to download the latest of itunes. I got an
ox8007054f error code and the down load will not complete. I have also tried to restore my computer to an earlier setting, but it will
not accept the change.Have you looked at this completed previos discussion. It discusses 0x8007054F.
Re: Error message when trying to install iTunes -
Hi All,
I am seeing the following error for SMS_AWEBSVC_CONTROL_MANAGER component with Message ID: 8100
Application Web Service Control Manager detected AWEBSVC is not responding to HTTP requests. The http status code and text is 400, Bad Request.
awebsctl.log file has below errors:
Call to HttpSendRequestSync failed for port 80 with status code 400, text: Bad Request
SMS_AWEBSVC_CONTROL_MANAGER 12/22/2014 3:37:55 PM
13920 (0x3660)
AWEBSVCs http check returned hr=0, bFailed=1
SMS_AWEBSVC_CONTROL_MANAGER 12/22/2014 3:37:55 PM
13920 (0x3660)
AWEBSVC's previous status was 1 (0 = Online, 1 = Failed, 4 = Undefined)
SMS_AWEBSVC_CONTROL_MANAGER 12/22/2014 3:37:55 PM
13920 (0x3660)
Health check request failed, status code is 400, 'Bad Request'.
SMS_AWEBSVC_CONTROL_MANAGER 12/22/2014 3:37:55 PM
13920 (0x3660)
Management point and Application Catalog Website Point are installed on the same Server where I am seeing the error for Application Catalog Web Service Point role. Management Point and Application Catalog Website Point are functioning properly. Application
Catalog Website is working.
Thanks & Regards, KedarHi Jason,
Application Catalog Web Service Point and Application Catalog Website Point; both are installed as per below configuration on same Server:
IIS Website: Default Web Site
Port Number: 80
with default value for Web Application Name configured.
For SMS_AWEBSVC_CONTROL_MANAGER component, I am getting below error in Component Status:
Application Web Service Control Manager detected AWEBSVC is not responding to HTTP requests. The http status code and text is 400, Bad Request.
Possible cause: Internet Information Services (IIS) isn't configured to listen on the ports over which AWEBSVC is configured to communicate.
Solution: Verify that the designated Web Site is configured to use the same ports which AWEBSVC is configured to use.
Possible cause: The designated Web Site is disabled in IIS.
Solution: Verify that the designated Web Site is enabled, and functioning properly.
For more information, refer to Microsoft Knowledge Base.
And awebsctl.log has the below error lines:
Call to HttpSendRequestSync failed for port 80 with status code 400, text: Bad Request
SMS_AWEBSVC_CONTROL_MANAGER
12/23/2014 11:04:36 AM 16388 (0x4004)
AWEBSVCs http check returned hr=0, bFailed=1
SMS_AWEBSVC_CONTROL_MANAGER
12/23/2014 11:04:36 AM 16388 (0x4004)
AWEBSVC's previous status was 1 (0 = Online, 1 = Failed, 4 = Undefined)
SMS_AWEBSVC_CONTROL_MANAGER
12/23/2014 11:04:36 AM 16388 (0x4004)
Health check request failed, status code is 400, 'Bad Request'.
SMS_AWEBSVC_CONTROL_MANAGER
12/23/2014 11:04:36 AM 16388 (0x4004)
STATMSG: ID=8100
What should I check from IIS side?
Application Catalog Website is functioning properly.
Thanks & regards,
Kedar
Thanks & Regards, Kedar
Maybe you are looking for
-
I had transferred all my photo files from my PC when I got my Mac Air. They were in a desktop folder all nicely organized in files (event, dates, etc.) That desktop folder is now gone after the Maverick update. When I click on Pictures in finder it c
-
Error -50 while trying to export my project
Good evening, I built a 1h18 project. Then, I chose to delete not used plans from the associated event. As my project is too big to share it on my MobileMe gallery, I would like, either to share it in a smaller format, or to export it or to build a D
-
Enhancing standard ESS and MSS Adobe Interactive Forms
Hi, I need to enhance the existing ESS and MSS Adobe Interactive Forms ie I need to add and delete some fields on the form (text fields, drop-downs, radio buttons) Could you please tell me the steps to go about it in ECC 6.0 Where do I add my code an
-
Can't open xlsl attachment in my email, what do i need
what do i need in order to open xlsl attachment sent to me via email
-
Problem in Flash CS3 video Encoder
Hi, I am experiencing a bug in the Flash CS3 Video encoder. I have saved an XML file with settings that I will be using for numerous video. I have basically set the Data Rate, Frame Rate, Key Frame Interval, Audio and Video Size. The frame rate is se