Can I use addAuditTrailEntry(String message, Object detail) in a jar file?
I have a lot of jar libraries that I need to import into my BPEL process. It's not practical for me to copy all the code flatly into an embedded java / bpelx.
How can I call the addAuditTrailEntry method inside the classes in my jar file?
e.g.
I import libraries.jar at the top of my .bpel file.
In my embedded java I do:
MyClass myclass = new MyClass();
myclass.doSomething();
In the public void doSomething() method I would like to write to the audit trail directly. Currently I am simply having the doSomething() method return a String with a summary of everything it has done. This is not good enough because the method takes a long time to complete and I need a running audit trail so that I can take actions depending on what is going on in it.
I can't seem to find the documentation... I assume in my MyClass.class I will need to import some bpel jars so that it can comprehend what a bpel process is... then pass the current process instance into the MyClass file so that it can call its addAuditTrailEntry method... is this right?
I envision something like:
import orabpeljars.jar
public MyClass(BPELProcess process)
process.addAuditTrailEntry("In MyClass Constructor");
------------------------------------------
I have a lot of jar libraries that I need to import into my BPEL process. It's not practical for me to copy all the code flatly into an embedded java / bpelx.
How can I call the addAuditTrailEntry method inside the classes in my jar file?
e.g.
I import libraries.jar at the top of my .bpel file.
In my embedded java I do:
MyClass myclass = new MyClass();
myclass.doSomething();
In the public void doSomething() method I would like to write to the audit trail directly. Currently I am simply having the doSomething() method return a String with a summary of everything it has done. This is not good enough because the method takes a long time to complete and I need a running audit trail so that I can take actions depending on what is going on in it.
I can't seem to find the documentation... I assume in my MyClass.class I will need to import some bpel jars so that it can comprehend what a bpel process is... then pass the current process instance into the MyClass file so that it can call its addAuditTrailEntry method... is this right?
I envision something like:
import orabpeljars.jar
public MyClass(BPELProcess process)
process.addAuditTrailEntry("In MyClass Constructor");
------------------------------------------
Similar Messages
-
Can I create a SOAP message object from a string?
can i create a soap message object in saaj with a string containing soap xml?
I know messageFactory has a constructor that
public abstract SOAPMessage createMessage(MimeHeaders headers, InputStream in)
does anyone know how to use this? Specifically transform a SOAP message in string format to something i could pass this constructor.
Is there a better way to do this?
I'm not EVER going to use apache's tomcat or GLUE or anyting and need to send a soap message from a client to a server via SOAP. I need to be able to transfer a String SOAP document to something i can search for elements with.sorry for being critical but the tutorial you just linked to is for the most part USELESS. it doesnt deal with Java just what a SOAP message looks like. yeah, i get it, its like xml. now how do i do what i want to with saaj?
something like
String sm;
sm = in.readLine(); //gives me a whole SOAP document (pretend)
sm--->>>MAGIC------>>>>>MIMEHeaders headers & InputStream sm_in
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage(headers, sm_in);
SOAPBody soapBody = message.getSOAPBody();
Name bodyName = factory.createName("YUP","m","http://theinternet/YUP");
Iterator iterator = soapBody.getChildElements(bodyName);
SOAPBodyElement bodyElement = (SOAPBodyElement)iterator.next();
String yup = bodyElement.getValue();
System.out.println("YUP element of the SOAP document is " + yup);what is the MAGIC in the above code? -
(261718088) Q: Can you use xm:multiple with Objects other than String?
Q: Can you use xm:multiple with Objects other than Strings?
<br>
A: You bet. Attached find a text file with some code from the example I showed
today, a version of the multipleSayHiTo() method that has a parameter of an Array
of Person objects rather than a parameter of an Array of Strings. The code within
the text file comes from the Greeting.jws file (the Greeting Web Service).
[multiple.txt]So you are saying that the recovery discs I made do include the copy of windows that was originally installed?
Absolutely! They will restore the hard disk to its original out-of-the-box contents. Follow the instructions in the section Restoring from recovery DVDs/media, which begins on p. 73 of the User's Guide.
Satellite A660 Series User’s Guide
maybe i can make a deal with wd to have them swap this drive out for the BEKT instead...
That would be a good idea in any case.
As I said, the 10-fc12-045d error would not be due to the drive's being AFT, but more likely the discs are not being read properly. New discs can be obtained from Toshiba. Scroll down to Get Recovery Media here
-Jerry -
How can I use "Family Sharing" without giving details of my credit or debit card? I do not want to give my cards data, I have always used iTunes prepaid cards.
Hi Saramos,
When setting up Family Sharing you must have a credit or debit card as your payment method. See this article for reference -
Family purchases and payments
When a family member makes a purchase it will be billed to any gift or store credit that they have first. If none exists it will be billed to you.
As the family organizer, you may not set your billing method for purchases to anything other than a credit or debit card. If you have a store credit such as from pre-paid cards, it may not be shared with other family members. See this article for reference -
How iTunes Store purchases are billed
Thanks for using Apple Support Communities.
Best,
Brett L -
How can I use "Family Sharing" without giving details of my credit or debit card? I do not want to give my cards data, I have always used iTunes prepaid cards.
Hi Saramos,
When setting up Family Sharing you must have a credit or debit card as your payment method. See this article for reference -
Family purchases and payments
When a family member makes a purchase it will be billed to any gift or store credit that they have first. If none exists it will be billed to you.
As the family organizer, you may not set your billing method for purchases to anything other than a credit or debit card. If you have a store credit such as from pre-paid cards, it may not be shared with other family members. See this article for reference -
How iTunes Store purchases are billed
Thanks for using Apple Support Communities.
Best,
Brett L -
Can I use to.String() method with NamedCache
Hi,
I have a distributed cache. Can I use to.String() method to print the contents of cache on the console. In my case it is not working..Do I neet to import anything?
NamedCache cache = CacheFactory.getCache("Test");
cache.put("hello", "world");
System.out.println(cache.toString());
Thanks,
ChayaHi Chaya,
Assuming that I understand your question correctly, each JVM has the same view of the cache if you're using a distributed (or optimistic, replicated, ...) cache. So when you add records from one JVM, they are visible to all the JVMs immediately (if you start up a new JVM, it will join the cluster and share the data as well).
So if you populate a named cache from JVM1, you can simply execute the display code (from my previously reply) in any JVM connected through Coherence, and it will display the entire contents of the logical named cache.
Jon Purdy
Tangosol, Inc. -
How can i write a string into a specified pos of a file?
How can i write a string into a specified pos of a file without read all file into ram and write the whole file again?
for example:
the content of file is:
name=123
state=456
i want to modify the value of name with 789
(write to file without read all file into ram)
How can i do it? thank youtake this as an idea. it actually does what i decribed above. you sure need to make some modifications so it works for your special need. If you use it and add any valuable code to it or find any bugs, please let me know.
import java.io.*;
import java.util.*;
* Copyright (c) 2002 Frank Fischer <[email protected]>
* All rights reserved. See the LICENSE for usage conditions
* ObjectProperties.java
* version 1.0, 2002-09-12
* author Frank Fischer <[email protected]>
public class ObjectProperties
// the seperator between the param-name and the value in the prooperties file
private static final String separator = "=";
// the vector where we put the arrays in
private Vector PropertiesSet;
// the array where we put the param/value pairs in
private String propvaluepair[][];
// the name of the object the properties file is for
public String ObjectPropertiesFileName;
// the path to the object'a properties file
public String ObjectPropertiesDir;
// reference to the properties file
public File PropertiesFile;
// sign for linebreak - depends on platforms
public static final String newline = System.getProperty("line.separator");
public ObjectProperties(String ObjectPropertiesFileName, String ObjectPropertiesDir, ObjectPropertiesManager ObjectPropertiesManager)
// System.out.println("Properties Objekt wird erzeugt: "+ObjectPropertiesFileName);
this.ObjectPropertiesFileName = ObjectPropertiesFileName;
this.ObjectPropertiesDir = ObjectPropertiesDir;
// reference to the properties file
PropertiesFile = new File(ObjectPropertiesDir+ObjectPropertiesFileName);
// vector to put the param/value pair-array in
PropertiesSet = new Vector();
// System.out.println("Properties File Backup wird erzeugt: "+name);
backup();
// System.out.println("Properties File wird eingelesen: "+PropertiesFile);
try
//opening stream to file for read operations
FileInputStream FileInput = new FileInputStream(PropertiesFile);
DataInputStream DataInput = new DataInputStream(FileInput);
String line = "";
//reading line after line of the properties file
while ((line = DataInput.readLine()) != null)
//just making sure there are no whitespaces at the beginng or end of the line
line = cutSpaces(line);
if (line.length() > 0)
//$ indicates a param-name
if (line.startsWith("$"))
// array to store a param/value pair in
propvaluepair = new String[1][2];
//get the param-name
String parameter = line.substring(1, line.indexOf(separator)-1);
//just making sure there are no whitespaces at the beginng or end of the variable
parameter = cutSpaces(parameter);
//get the value
String value = line.substring(line.indexOf(separator)+1, line.length());
//just making sure there are no whitespaces at the beginng or end of the variable
value = cutSpaces(value);
//put the param-name and the value into an array
propvaluepair[0][0] = parameter;
propvaluepair[0][1] = value;
// System.out.println("["+ObjectPropertiesFileName+"] key/value gefunden:"+parameter+";"+value);
//and finaly put the array into the vector
PropertiesSet.addElement(propvaluepair);
// error handlig
catch (IOException e)
System.out.println("ERROR occured while reading property file for: "+ObjectPropertiesFileName);
System.out.println("ERROR CODE: "+e);
// System.out.println("in ObjectProperties");
// function to be called to get the value of a specific paramater 'param'
// if the specific paramater is not found '-1' is returned to indicate that case
public String getParam(String param)
// the return value indicating that the param we are searching for is not found
String v = "-1";
// looking up the whole Vector
for (int i=0; i<PropertiesSet.size(); i++)
//the String i want to read the values in again
String s[][] = new String[1][2];
// trying to get out the array from the vector again
s = (String[][]) PropertiesSet.elementAt(i);
// comparing the param-name we're looking for with the param-name in the array we took out the vector at position i
if (s[0][0].equals(param) == true)
//if the param-names are the same, we look up the value and write it in the return variable
v = s[0][1];
// making sure the for loop ends
i = PropertiesSet.size();
// giving the value back to the calling procedure
return v;
// function to be called to set the value of a specific paramater 'param'
public void setParam(String param, String value)
// looking up the whole Vector for the specific param if existing or not
for (int i=0; i<PropertiesSet.size(); i++)
//the String i want to read the values in again
String s[][] = (String[][]) PropertiesSet.elementAt(i);
// comparing the param-name we're looking for with the param-name in the array we took out the vector at position i
if (s[0][0].equals(param) == true)
//if the param-names are the same, we remove the param/value pair so we can add the new pair later in
PropertiesSet.removeElementAt(i);
// making sure the for loop ends
i = PropertiesSet.size();
// if we land here, there is no such param in the Vector, either there was none form the beginng
// or there was one but we took it out.
// create a string array to place the param/value pair in
String n[][] = new String[1][2];
// add the param/value par
n[0][0] = param;
n[0][1] = value;
// add the string array to the vector
PropertiesSet.addElement(n);
// function to save all data in the Vector to the properties file
// must be done because properties might be changing while runtime
// and changes are just hold in memory while runntime
public void store()
backup();
String outtofile = "# file created/modified on "+createDate("-")+" "+createTime("-")+newline+newline;
try
//opening stream to file for write operations
FileOutputStream PropertiesFileOuput = new FileOutputStream(PropertiesFile);
DataOutputStream PropertiesDataOutput = new DataOutputStream(PropertiesFileOuput);
// looping over all param/value pairs in the vector
for (int i=0; i<PropertiesSet.size(); i++)
//the String i want to read the values in
String s[][] = new String[1][2];
// trying to get out the array from the vector again
s = (String[][]) PropertiesSet.elementAt(i);
String param = "$"+s[0][0];
String value = s[0][1];
outtofile += param+" = "+value+newline;
outtofile += newline+"#end of file"+newline;
try
PropertiesDataOutput.writeBytes(outtofile);
catch (IOException e)
System.out.println("ERROR while writing to Properties File: "+e);
catch (IOException e)
System.out.println("ERROR occured while writing to the property file for: "+ObjectPropertiesFileName);
System.out.println("ERROR CODE: "+e);
// sometimes before overwritting old value it's a good idea to backup old values
public void backup()
try
// reference to the original properties file
File OriginalFile = new File(ObjectPropertiesDir+ObjectPropertiesFileName);
File BackupFile = new File(ObjectPropertiesDir+"/backup/"+ObjectPropertiesFileName+".backup");
//opening stream to original file for read operations
FileInputStream OriginalFileInput = new FileInputStream(OriginalFile);
DataInputStream OriginalFileDataInput = new DataInputStream(OriginalFileInput);
//opening stream to backup file for write operations
FileOutputStream BackupFileOutput = new FileOutputStream(BackupFile);
DataOutputStream BackupFileDataOutput = new DataOutputStream(BackupFileOutput);
// String content = "";
String line = "";
// do till end of file
while ((line = OriginalFileDataInput.readLine()) != null)
BackupFileDataOutput.writeBytes(line+newline);
// error handlig
catch (IOException e)
System.out.println("ERROR occured while back up for property file: "+ObjectPropertiesFileName);
System.out.println("ERROR CODE: "+e);
System.out.println("this is a serious error - the server must be stopped");
private String cutSpaces(String s)
while (s.startsWith(" "))
s = s.substring(1, s.length());
while (s.endsWith(" "))
s = s.substring(0, s.length()-1);
return s;
public String createDate(String seperator)
Date datum = new Date();
String currentdatum = new String();
int year, month, date;
year = datum.getYear()+1900;
month = datum.getMonth()+1;
date = datum.getDate();
currentdatum = ""+year+seperator;
if (month < 10)
currentdatum = currentdatum+"0"+month+seperator;
else
currentdatum = currentdatum+month+seperator;
if (date < 10)
currentdatum = currentdatum+"0"+date;
else
currentdatum = currentdatum+date;
return currentdatum;
public String createTime(String seperator)
Date time = new Date();
String currenttime = new String();
int hours, minutes, seconds;
hours = time.getHours();
minutes = time.getMinutes();
seconds = time.getSeconds();
if (hours < 10)
currenttime = currenttime+"0"+hours+seperator;
else
currenttime = currenttime+hours+seperator;
if (minutes < 10)
currenttime = currenttime+"0"+minutes+seperator;
else
currenttime = currenttime+minutes+seperator;
if (seconds < 10)
currenttime = currenttime+"0"+seconds;
else
currenttime = currenttime+seconds;
return currenttime; -
Can any one suggest me how can I use relative path inside SSIS pacakge to access config file ?
Can any one suggest me how can I use relative path inside SSIS pacakge to access config file ? Please help me as its urgent.THanks for your help in advance.
Hi Jay,
SSIS can only recognize the absolute path of a XML Configuration file, the relative path is not supported. Furthermore, if the XML Configuration file is already generated, we can use the Environment variable package configuration type instead so that
SSIS runtime automatically looks for the configuration file from the path defined in the environment variable. This is convenient when we need to deploy a package to different environment. We only need to define the environment variable for package configurations
once on each server, and then the variable can be used by all the packages on this server.
Regards,
Mike Yin
TechNet Community Support -
How can I use Automator to extract specific Data from a text file?
I have several hundred text files that contain a bunch of information. I only need six values from each file and ideally I need them as columns in an excel file.
How can I use Automator to extract specific Data from the text files and either create a new text file or excel file with the info? I have looked all over but can't find a solution. If anyone could please help I would be eternally grateful!!! If there is another, better solution than automator, please let me know!
Example of File Contents:
Link Time =
DD/MMM/YYYY
Random
Text
161 179
bytes of CODE memory (+ 68 range fill )
16 789
bytes of DATA memory (+ 59 absolute )
1 875
bytes of XDATA memory (+ 1 855 absolute )
90 783
bytes of FARCODE memory
What I would like to have as a final file:
EXCEL COLUMN1
Column 2
Column3
Column4
Column5
Column6
MM/DD/YYYY
filename1
161179
16789
1875
90783
MM/DD/YYYY
filename2
xxxxxx
xxxxx
xxxx
xxxxx
MM/DD/YYYY
filename3
xxxxxx
xxxxx
xxxx
xxxxx
Is this possible? I can't imagine having to go through each and every file one by one. Please help!!!Hello
You may try the following AppleScript script. It will ask you to choose a root folder where to start searching for *.map files and then create a CSV file named "out.csv" on desktop which you may import to Excel.
set f to (choose folder with prompt "Choose the root folder to start searching")'s POSIX path
if f ends with "/" then set f to f's text 1 thru -2
do shell script "/usr/bin/perl -CSDA -w <<'EOF' - " & f's quoted form & " > ~/Desktop/out.csv
use strict;
use open IN => ':crlf';
chdir $ARGV[0] or die qq($!);
local $/ = qq(\\0);
my @ff = map {chomp; $_} qx(find . -type f -iname '*.map' -print0);
local $/ = qq(\\n);
# CSV spec
# - record separator is CRLF
# - field separator is comma
# - every field is quoted
# - text encoding is UTF-8
local $\\ = qq(\\015\\012); # CRLF
local $, = qq(,); # COMMA
# print column header row
my @dd = ('column 1', 'column 2', 'column 3', 'column 4', 'column 5', 'column 6');
print map { s/\"/\"\"/og; qq(\").$_.qq(\"); } @dd;
# print data row per each file
while (@ff) {
my $f = shift @ff; # file path
if ( ! open(IN, '<', $f) ) {
warn qq(Failed to open $f: $!);
next;
$f =~ s%^.*/%%og; # file name
@dd = ('', $f, '', '', '', '');
while (<IN>) {
chomp;
$dd[0] = \"$2/$1/$3\" if m%Link Time\\s+=\\s+([0-9]{2})/([0-9]{2})/([0-9]{4})%o;
($dd[2] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of CODE\\s/o;
($dd[3] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of DATA\\s/o;
($dd[4] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of XDATA\\s/o;
($dd[5] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of FARCODE\\s/o;
last unless grep { /^$/ } @dd;
close IN;
print map { s/\"/\"\"/og; qq(\").$_.qq(\"); } @dd;
EOF
Hope this may help,
H -
Can I use Bridge to export image data into a .txt file?
I have a folder of images and I would like to export the File Name, Resolution, Dimensions and Color Mode for each file into one text file. Can I use Bridge to export image data into a .txt file?
Hello
You may try the following AppleScript script. It will ask you to choose a root folder where to start searching for *.map files and then create a CSV file named "out.csv" on desktop which you may import to Excel.
set f to (choose folder with prompt "Choose the root folder to start searching")'s POSIX path
if f ends with "/" then set f to f's text 1 thru -2
do shell script "/usr/bin/perl -CSDA -w <<'EOF' - " & f's quoted form & " > ~/Desktop/out.csv
use strict;
use open IN => ':crlf';
chdir $ARGV[0] or die qq($!);
local $/ = qq(\\0);
my @ff = map {chomp; $_} qx(find . -type f -iname '*.map' -print0);
local $/ = qq(\\n);
# CSV spec
# - record separator is CRLF
# - field separator is comma
# - every field is quoted
# - text encoding is UTF-8
local $\\ = qq(\\015\\012); # CRLF
local $, = qq(,); # COMMA
# print column header row
my @dd = ('column 1', 'column 2', 'column 3', 'column 4', 'column 5', 'column 6');
print map { s/\"/\"\"/og; qq(\").$_.qq(\"); } @dd;
# print data row per each file
while (@ff) {
my $f = shift @ff; # file path
if ( ! open(IN, '<', $f) ) {
warn qq(Failed to open $f: $!);
next;
$f =~ s%^.*/%%og; # file name
@dd = ('', $f, '', '', '', '');
while (<IN>) {
chomp;
$dd[0] = \"$2/$1/$3\" if m%Link Time\\s+=\\s+([0-9]{2})/([0-9]{2})/([0-9]{4})%o;
($dd[2] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of CODE\\s/o;
($dd[3] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of DATA\\s/o;
($dd[4] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of XDATA\\s/o;
($dd[5] = $1) =~ s/ //g if m/([0-9 ]+)\\s+bytes of FARCODE\\s/o;
last unless grep { /^$/ } @dd;
close IN;
print map { s/\"/\"\"/og; qq(\").$_.qq(\"); } @dd;
EOF
Hope this may help,
H -
How can I use the "Correct camera distortion" filter and process multiple files in PSE 11?
How can I use the "Correct camera distortion" filter and process multiple files in PSE 11?
Did you check the help page for Correct Camera Distortion and Process multiple file
Correct Camera Distortion: http://helpx.adobe.com/photoshop-elements/using/retouching-correcting.html#main-pars_headi ng_5
Process multiple files: http://help.adobe.com/en_US/photoshopelements/using/WS287f927bd30d4b1f89cffc612e28adab65-7 fff.html#WS287f927bd30d4b1f89cffc612e28adab65-7ff6 -
Can I use my macbook as a external harddrive to copy files to my imac
can I use my macbook as a external harddrive to copy files to my imac
Yup it's called Target Disk Mode. Click the link and follow the instructions.
-
Can I increase heap memory without specify any class or jar file??
Hi,
I tried to increase my heap memory in this way :
java -Xms256m -Xmx256m
but I got an error ... it's seem that I must specify a class java or a .jar file ...
This is the error :
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
can I increase heap memory without specify any class or jar file??
thxchiara wrote:
Hi,
I tried to increase my heap memory in this way :
java -Xms256m -Xmx256m
but I got an error ... it's seem that I must specify a class java or a .jar file ...
This is the error :
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
can I increase heap memory without specify any class or jar file??The job of java.exe is to execute java bytecode.
What is it supposed to do with your request to use 256m of memory for heap
when you are not giving it a class or a jar to run? -
How can i use a string name as an onject name.please help!
hi it seems like an easy one but i can not find it anywhere.how can i use the name of a string as a name of an object such as the code(my problem is the code)...
public void oda(String name1){
String name2=name1+"s";
String name3=name1+"ss";
TextArea name1=new TextArea();
TextArea name2=new TextArea();
TextArea name3=new TextArea();
i think my problem is clear but to be sure..
how can i give a name to an object in my textarea which is already using as a string.
thank u .it get very compilcated to change the name of the object you created. identity is something you don't want to mess with..you can do it by usin reflection, but it will slow down your application and (again) is quite complicated...
a simple solution (and more object-oriennted) is to create a Wrapper, Decorator, or Extends the class.
example
public class MyTextBox{
private String name = null;
private boolean value = false;
private JTextArea txtArea = null;
public MyTextBox(String name, boolean value){
txtArea = new JTextArea();
this.value = value;
this.isOn = isOn;
public String getComponentName(){ return name; }
pubic boolean getComponentValue(){ return value; }
public JTextArea getTextArea(){ return area; }
} -
Can I use subtype/supertype Entity Object with JHeadstart ?
Hi,
I am using Generalization on our entity object design, i,e : Employee(SuperType), Hourly_Employee(SubType), SalariedEmployee(SubType), Consoltant(SubType). The attributes attached below.
All SubTypes will EXTEND the supertype : Employee.
The questions are :
Can JHeadstart handle the generalized entity objects ?
How can the UI look like with JHeadstart ?
Thank you for your help,
Krist
Supertype : Employee
Employee_Number
Employee_Name
Address
Employee_Type
Date_Hired
SubType : Hourly_Employee
Hourly_Rate
SubType : Salaried_Employee
Annual_Salary
Stock_Options
SubType : CONSULTANT
Contract_Number
Billing_RateKrist,
If I understand you correctly you want to have a number of View Object attributes in a page to be accessible through 'subtabs', and want the correct subtab to be shown when the 'discriminator' field is changed. I am sorry for the confusion, I got thrown off track with all the super-subtype Entity details, but in the UI you are only dealing with ViewObject (usages), and not Entity Objects.
Anyway, we can not generate 'subtabs'. There is a feature on our 'Enhancement list' to make the Regions have a 'stacked' property, which I think would come pretty close to what you need: you could group ViewObject Atributes together in Regions, and 'stacked' Regions would be generated as tab pages. We have not implemented this feature yet, and even if we had, you would have to change it post-gen because in your case, you would not want the end user to be able to 'switch tabs', but only a change of the 'discrimitator' field should do that.
We have shipped some templates, though, for creating subtabs for child groups. Perhaps you could take a look if some of that code could be useable for your.
I would suggest the following approach:
1.) In the application structure file, create 'Regions' for all subtypes, and in the BC4J Property Editor, assign the 'subtype' attributes to the corresponding Region.
2.) Regenerate the page. Now you should have a separate 'header' element for each subtype, containing the appropriate attributes.
3.) Now you will need to transform those 'headers' to 'subtype tabs'. You could do that by borrowing code from our 'tabbed child' templates, or, alternatively, you could use a similar, Javascript-based technique that we use for switching between Quick Search and Advanced Search.
4.) Finally, you should device a mechanism to change the active tab when changing the 'discriminator' column in the area above the tabs, with the supertype fields.
Hope this helps,
Peter Ebell
JHeadstart Team
Maybe you are looking for
-
Is there a way to view my recent music searches?
Last Sunday I searched for a tune I heard on Sirius and listened to the sample. I was going to purchase it, got distracted, and now I forget the name of the song I searched for and the artist. Bummer.
-
Importing iTunes Library from Older iBook to New iMac
My old iBook (700 MHz G3) had a severe hard drive failure, but I did manage to transfer via firewire the entire MUSIC folder and the entire PICTURES folder, as well other data I needed. The question remains: How do I import the iTunes Library from th
-
Can anyone help with why an iTunes Radio staion no longer plays?
Been enjoying the iTunes Radio stations, and selected the Christmas Songs station, have been listening to it, editing it and customizing it to make it my own. However, it will not play anymore when I select it. All of my other stations play, just n
-
Weblogic7.0 beta workshop
I am getting following error message when trying to start weblogic server from TOOLS-Start Weblogic Server: can not find file StartWebLoficServer.cmd How do i fix this. Thanks, sa
-
Can you expand the number of LAN ports the Time Capsule has?
I have a recently purchased a Time Capsule and am wondering if you could use something like a splicer to add more LAN ports to the device.