Sample Javacard 2.2.1 Electronic wallet, Loyalty Points & StudentID applet
Hi All,
After nine months of researching and developing a java card applet and terminal side interface for my final year university project I was frustrated with the lack of sample code and tutorials available online.
My applet is aimed at students as an id card containing a student id, all the features of an electronic wallet, loyalty point system protected by a pin number. Pin is changeable.
The terminal interaction or host side application that communicates with this applet can be found in this forum under the heading "Sample Smartcardio (Host side) applet interaction application".
As I have no finished my project I would like to share it with anyone that would like to see it.
While I would love to write a tutorial I simply do not have the time however below is the applet I used in my project, I how for anyone that has read through java sun's tutorials this will be a help:
package account;
import javacard.framework.APDU;
import javacard.framework.APDUException;
import javacard.framework.ISO7816;
import javacard.framework.Applet;
import javacard.framework.ISOException;
import javacard.framework.OwnerPIN;
import javacard.framework.TransactionException;
import javacard.framework.Util;
* @Raymond_Garrett
* DT 354-4
*Applet ID 41 63 63 6F 75 6E 74 41 70 70 6C 65 74
public class AccountApplet extends Applet {
// codes of CLA byte in the command APDUs
final static byte ACCOUNT_CLA = (byte)0xA0;
// codes of INS byte in the command APDUs
final static byte VERIFY_INS = (byte) 0x20;
final static byte CREDIT_INS = (byte) 0x30;
final static byte DEBIT_INS = (byte) 0x40;
final static byte GET_LOYALTYPOINTS_BALANCE_INS = (byte) 0x45;
final static byte CREDIT_LOYALTYPOINTS_INS = (byte) 0x47;
final static byte GET_BALANCE_INS = (byte) 0x50;
final static byte UPDATE_PIN_INS = (byte) 0x60;
final static byte ADMIN_RESET_INS = (byte) 0x70;
final static byte PIN_TRIES_REMAINING_INS = (byte) 0x80;
final static byte STUDENT_NUMBER_INS = (byte) 0x90;
// maximum Account balance
final static short MAX_BALANCE = 10000;
// maximum transaction amount
final static short MAX_TRANSACTION_AMOUNT = 5000;
// maximum number of incorrect tries before the
// PIN is blocked
//Changed to 4, as a safe guard all. All tests, messages and checks will use 3
final static byte PIN_TRY_LIMIT =(byte)0x04;
// maximum size PIN
final static byte MAX_PIN_SIZE =(byte)0x08;
// Applet-specific status words:
final static short SW_NO_ERROR = (short) 0x9000;
final static short SW_VERIFICATION_FAILED = 0x6300;
final static short SW_PIN_VERIFICATION_REQUIRED = 0x6301;
final static short SW_INVALID_TRANSACTION_AMOUNT = 0x6E83;
final static short SW_EXCEED_MAXIMUM_BALANCE = 0x6E84;
final static short SW_NEGATIVE_BALANCE = 0x6E85;
final static short SW_PIN_TO_LONG = 0x6E86;
final static short SW_PIN_TO_SHORT = 0x6E87;
// Student number (Ascii)d05106012 - (Hex)44 30 35 31 30 36 30 31 32
private static byte[] STUDENT_NUMBER_ARRAY = {(byte)0x44, (byte)0x30, (byte)0x35, (byte)0x31, (byte)0x30, (byte)0x36, (byte)0x30, (byte)0x31, (byte)0x32};
// instance variables declaration
OwnerPIN pin;
short balance = 1000; // Starting balance of decimal 1000 is 3E8 in hex
short loyaltyPoints = 0; //Loyalty points
// 1 Loyalty point awarded for every 100 cent spent.
* install method
public static void install(byte[] bArray, short bOffset, byte bLength) {
// GP-compliant JavaCard applet registration
new AccountApplet(bArray, (short) (bOffset + 1), bArray[bOffset]);
* Constructor
* @param bArray
* @param bOffset
* @param bLength
private AccountApplet(byte[] bArray, short bOffset, byte bLength){
pin = new OwnerPIN(PIN_TRY_LIMIT, MAX_PIN_SIZE);
// bArray contains the default PIN initialization value (12345)
bArray[0] = 01;
bArray[1] = 02;
bArray[2] = 03;
bArray[3] = 04;
bArray[4] = 05;
bOffset = 0;
bLength = 5;
pin.update(bArray, bOffset, bLength);
// register the applet instance with the JCRE
register();
} // end of the constructor
* Boolean is selected
public boolean select() {
// the applet declines to be selected
// if the pin is blocked
if (pin.getTriesRemaining() == 0)
return false;
return true;
} // end of select method
* deselect
public void deselect() {
// reset the pin
pin.reset();
* Key method the gets the APDU reads the INS and calls the appropiate method
* Process APDUs
* @param apdu
public void process(APDU apdu) {
// APDU object carries a byte array (buffer) to
// transfer incoming and outgoing APDU header
// and data bytes between the card and the host
// at this point, only the first five bytes
// [CLA, INS, P1, P2, P3] are available in
// the APDU buffer
byte[] buffer = apdu.getBuffer();
// return if the APDU is the applet SELECT command
if (selectingApplet())
return;
// verify the CLA byte
if (buffer[ISO7816.OFFSET_CLA] != ACCOUNT_CLA)
ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
// check the INS byte to decide which service method to call
switch (buffer[ISO7816.OFFSET_INS]) {
case GET_BALANCE_INS: getBalance(apdu); return;
case DEBIT_INS: debit(apdu); return;
case CREDIT_INS: credit(apdu); return;
case VERIFY_INS: verify(apdu); return;
case UPDATE_PIN_INS: updatePin(apdu); return;
case ADMIN_RESET_INS: adminRest(); return;
case PIN_TRIES_REMAINING_INS: getPinTriesRemaining(apdu); return;
case STUDENT_NUMBER_INS: getStudentNumber(apdu); return;
case GET_LOYALTYPOINTS_BALANCE_INS: getLoyaltyPoints(apdu); return;
case CREDIT_LOYALTYPOINTS_INS: creditLoyaltyPoints(apdu); return;
default: ISOException.throwIt
(ISO7816.SW_INS_NOT_SUPPORTED);
} // end of process method
* verify then
* withdraw money from the Account balance
* @param apdu
private void debit(APDU apdu) {
// verify authentication
if (!pin.isValidated()){
ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
byte[] buffer = apdu.getBuffer();
// get the number of bytes in the
// data field of the command APDU
byte numBytes = buffer[ISO7816.OFFSET_LC];
//receive data
//data is read into apdu buffer
//at offset ISO7816.OFFSET_CDATA
byte byteRead = (byte)(apdu.setIncomingAndReceive());
short shortAmount = 0;
if (numBytes == 2){
shortAmount = (short) Util.getShort(buffer, ISO7816.OFFSET_CDATA);
else if (numBytes == 1) {
shortAmount = (short) buffer[ISO7816.OFFSET_CDATA];
// check the debit amount
if (( shortAmount > MAX_TRANSACTION_AMOUNT) || ( shortAmount < 0 )) {
ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);
// check the new balance
if ((short)( balance - shortAmount) < 0) {
ISOException.throwIt(SW_NEGATIVE_BALANCE);
// debit the amount
balance = (short)(balance - shortAmount);
//Add loyalty points
loyaltyPoints = (short) (loyaltyPoints + (short)(shortAmount/100));
return;
} // end of debit method
Code continued>>>>>>>>
* Verify then
* add money (credit) to the Account balance
* @param apdu
private void credit(APDU apdu) {
// verify authentication
if (!pin.isValidated()){
ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
byte[] buffer = apdu.getBuffer();
// get the number of bytes in the
// data field of the command APDU
byte numBytes = buffer[ISO7816.OFFSET_LC];
//receive data
//data is read into apdu buffer
//at offset ISO7816.OFFSET_CDATA
byte byteRead = (byte)(apdu.setIncomingAndReceive());
short shortAmount = 0;
if (numBytes == 2){
shortAmount = (short) Util.getShort(buffer, ISO7816.OFFSET_CDATA);
else if (numBytes == 1) {
shortAmount = (short) buffer[ISO7816.OFFSET_CDATA];
// check the credit amount
if (( shortAmount > MAX_TRANSACTION_AMOUNT) || ( shortAmount < 0 )) {
ISOException.throwIt(SW_INVALID_TRANSACTION_AMOUNT);
// check the new balance
if ((short)( balance + shortAmount) > MAX_BALANCE) {
ISOException.throwIt(SW_EXCEED_MAXIMUM_BALANCE);
// credit the amount
balance = (short)(balance + shortAmount);
return;
} // end of deposit method
* Verify then
* Update/change pin
* byte[] bArray is the pin
* short bOffset is the position in the array the pin starts in the bArray
* byte bLength is the lenght of the pin
* @param apdu
private void updatePin(APDU apdu) {
// byte[] bArray, short bOffset, byte bLength){
// First check the original pin
// verify authentication
if (! pin.isValidated())
ISOException.throwIt(SW_PIN_VERIFICATION_REQUIRED);
byte[] buffer = apdu.getBuffer();
// get the number of bytes in the
// data field of the command APDU -- OFFSET_LC = positon 4
byte numBytes = buffer[ISO7816.OFFSET_LC];
// recieve data
// data are read into the apdu buffer
// at the offset ISO7816.OFFSET_CDATA
byte byteRead = (byte)(apdu.setIncomingAndReceive());
// error if the number of data bytes
// read does not match the number in the Lc byte
if (byteRead != numBytes) {
ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
if ( numBytes > 8 )
ISOException.throwIt(SW_PIN_TO_LONG);
if ( numBytes < 4 )
ISOException.throwIt(SW_PIN_TO_SHORT);
short offset_cdata = 05;
pin.update(buffer, offset_cdata, numBytes);
pin.resetAndUnblock();
* Admin method
* Rest the pin attempts and unblock
* @param apdu
private void adminRest() {
try {
pin.resetAndUnblock();
} catch (RuntimeException e) {
// TODO Auto-generated catch block
return;
* Credit loyatly card pints in multiples of 100
* @param apdu
private void creditLoyaltyPoints(APDU apdu) {
short creditAmount = (short) ((loyaltyPoints/ 100) * 100);
balance = (short) (balance + creditAmount);
loyaltyPoints = (short) (loyaltyPoints - creditAmount);
return;
* Get number of remaining pin tries
* @param apdu
private void getPinTriesRemaining(APDU apdu) {
try {
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)2);
// write the PinTriesRemaining into the APDU buffer at the offset 0
Util.setShort(buffer, (short)0, pin.getTriesRemaining());
// send the 2-byte balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short)0, (short)2);
} catch (APDUException e) {
// TODO Auto-generated catch block
} catch (TransactionException e) {
// TODO Auto-generated catch block
} catch (ArrayIndexOutOfBoundsException e) {
// TODO Auto-generated catch block
} catch (NullPointerException e) {
// TODO Auto-generated catch block
} // end of getPinTriesRemaining method
* No verification needed
* the method returns the Accounts balance
* @param apdu
private void getBalance(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)2);
// write the balance into the APDU buffer at the offset 0
Util.setShort(buffer, (short)0, (balance));
// send the 2-byte balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short)0, (short)2);
* No verification needed
* the method returns the Accounts loyaltyPoints balance
* @param apdu
private void getLoyaltyPoints(APDU apdu){
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)2);
// write the loyaltyPoints balance into the APDU buffer at the offset 0
Util.setShort(buffer, (short)0, (loyaltyPoints));
// send the 2-byte loyaltyPoints balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short)0, (short)2);
* No verification needed
* the method returns the student number
* @param apdu
private void getStudentNumber(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// inform the JCRE that the applet has data to return
short le = apdu.setOutgoing();
// set the actual number of the outgoing data bytes
apdu.setOutgoingLength((byte)STUDENT_NUMBER_ARRAY.length);
// write the balance into the APDU buffer at the offset 0
apdu.sendBytesLong(STUDENT_NUMBER_ARRAY, (short)0, (short) STUDENT_NUMBER_ARRAY.length);
// Util.setShort(buffer, (short)0, STUDENT_NUMBER_ARRAY);
// send the 2-byte balance at the offset
// 0 in the apdu buffer
try {
apdu.sendBytes((short)0, (short)STUDENT_NUMBER_ARRAY.length);
} catch (APDUException e) {
// TODO Auto-generated catch block
} // end of getBalance method
* Verification method to verify the PIN
* @param apdu
private void verify(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// receive the PIN data for validation.
byte byteRead = (byte)(apdu.setIncomingAndReceive());
// check pin
// the PIN data is read into the APDU buffer
// starting at the offset ISO7816.OFFSET_CDATA
// the PIN data length = byteRead
if (pin.check(buffer, ISO7816.OFFSET_CDATA,byteRead)
== false)
ISOException.throwIt(SW_VERIFICATION_FAILED);
} // end of verify method
} // end of class AccountEdited by: Raymond.garrett-Dublin on Jun 17, 2009 11:30 PM
Similar Messages
-
Hello,
is there any electronic wallet application for N95 available? I need it for storing PIN codes etc. Thanks.The easiest way to do this on the N95 is to put them all in a text file that you can subsequently zip up (see menu > office) with password protection.
Was this post helpful? If so, please click on the white "Kudos!" star below. Thank you! -
Loyalty points are stored in which entity?
Hi,
I need to integrate Siebel's loyalty management with ATG and for That I need to know What is the data that flows from Siebel to ATG for loyalty functionality.
So I need to know below things-
In which entity loyalty/reward points are stored in Siebel or Where exactly is the loyalty points in Siebel?
Regards,
PrateekThere are several tables that hold variant info .. you can find these in SE11 / SE16 looking for VARI* e.g. VARID Variant directory, VARIT Variant texts -> but most of the time you should go through SAP function modules to read the contents of these e.g. RS_VARIANT_CONTENTS, as some of the data is held in INDX-type tables that you won't want to decode yourself...
Jonathan -
Help with Java covert 5 loyalty points into 1 credit code.
Can u please provide the code so that:
Loyalty points can be converted into credits (5 loyalty points = 1 credit)
so far i have done....
public void ConvertPoints (int cr, int loy)
erm, these are my fields in the class
public class Loyalty
private static int currentId = 2000;
private int cardId;
private String name;
private int rating;
private int credits;
private String centre;
public int loyalty;
my constructor:
public Loyalty (String nam, int rat, int cred,String cen, int loyalty)
name = nam;
rating = rat;
credits = 30;
cardId = currentId++;
centre = cen;
loyalty = 20;
Can u pleaseeeeee provide me the code to:
Loyalty points can be converted into credits (5 loyalty points = 1 credit)
thxsss help appreciated xpublic class foo {
private int loyalty, credit;
public foo() {}
public int convertLoyaltyToCredits() {
int credits = loyalty / 5;
credit += credits;
loyalty -= 5 * credit;
return credit; -
Hi ,
I need a small inofrimation about loyalty points features in atg.do we have any loyalty points fetarures available in CRS? if not could you please tell some idea about how to implement this features?
Thanks,
Pveedu
lHi pveedu1
i think we don need any customization in OrderPriceEngine. Instead, While calling the CommitOrderFormHandler.commitOrder method write your logic there. Means assign some loyalty point for profile based on the order total. By this we can add loyalty point to the user.
Another Task is create a PaymentGroup called loyaltyPoint like Credit Card by that the user can use this points for the next purchase.
For Creating new http://docs.oracle.com/cd/E26180_01/Platform.94/ATGCommProgGuide/html/s1008extendingthepaymentprocesstosupp01.html refer this.
Regards
Kumaresh Babu A -
Hi ,
How loyalty points program done in crm distributed through third party.
Answers will be rewarded.
Thanks & Regards,
NandakumarLoyalty points resolved.....
-
Sample Editor - Assigning a controller to the Anchor point?
Does anyone know if it's possible to assign a rotary controller to the anchor point in the sample editor (so that you can adjust the start time of audio or a sample in the EXS on the fly - as you can on a hardware sampler)?
Many thanks.Happens regularly. I'm more often second though, because of the screenshots I add...
...and your reply is not parrotting, since you didn't read mine before you wrote yours... -
QM: Sample Size is 32767 if freely defined inspection point is used
Hi,
I am using Inspection plan with freely defined inspection point (100).
Inspection type: 04
I want to do 100% inspection. Material master setting is done for early lot creation.
If I use freely defined inspection point in the plan and create an order of any quantity > 32767, I get a sample size of 32767. If create a order of 100000 qty still sample size is 32767 and I can't even change it during result recording. If I don't use freely defined inspection point I get a sample size which is equal to the order quantity.
My Requirement:
I want to use freely defined inspection point in the plan... and also I want to get a sample size equal to production quantity (not 32767 always when production quantity exceeds the this quantity).
Please let me know how to control this fix sample size 32767 when my plan is with freely defined inspection point.
Regards,
Abir.Hi,
Sample size under 'Inspect' column in result recording screen is always 32767, if order quantity >32767.
I use EARLY lot creation (through material master setting), because I want one lot for one production order... do partial confirmation. Lot is created with production order release, before actual GR takes place.
Say I have an order with qty 100,000 and if I open the lot after REL of order I see,
inspection lot quantity: 100,000
Actual Lot Qty: 0
Sample Size: 100,000
Even if I do confirmation and GR for say 100,000 qty and open the Lot I can see,
inspection lot quantity: 100,000
Actual Lot Qty: 100,000
Sample Size: 100,000
When I go to result recoding screen, against every MIC there is column 'Inspect' (there I get 32767), there is another entry field 'Inspected' (here system don't allow to enter more that 32767)
Sampling procedure I have used:
Sample Type: 200 100% Inspection
Valuation Mode: 500 Manual Valuation
Free Inspection Point
May be I made mistake in pointing out the issue; the problem is with 'Inspect' quantity in result recording - which always appearing 32767. For smaller quantity order its equal to order quantity. How change the 'Inspect' quantity.
Also not if I remove Inspection Point from the plan I get "Inspect' quantity equal to Production order quantity.
Best regards,
Abir. -
Samples for creating a calibration grid with supplied points. Not a Grid graphic
Hi again.
I have a desire to create a calibration grid for my images captured with IMAQ methods from Measurement Studio.
I already take measurements and such based on a calibrated Grid from a .jpg. But now I am interested in allowing my user to create a calibration grid on the fly based on selecting points in a template image and supplying real world values.
The manual section 6 on grid calibration makes some reference to the CWIMAQVision.LearnCalibrationPoints method. But little information is supplied. Does NI have a sample of a "Create your grid from points" sort of idea?
As I would also like to be able to define this grid with points, and then put a perspective on it.
Looks like it should be able to be achieved.
Thanksit's ok, I figured it out.
just using Flash builder 4.5 grid containers -
POS Integration Wiki GM - Loyalty Points
Hi ALL
Can anybody helps me, I am going through the GM - Loyal point Wiki for POS Integration which talks about Loyal points capturing in PIPE with POSDM/CREATE_TRANSACTIONS_EXT BAPI under Retaillineitem segment.
I am checking the segment but shows no Loyalty fields, so can anyone helps me on this.
Regards
Ashokhi ashok,
pls refer the following links
https://wiki.sdn.sap.com/wiki/pages/listpages-dirview.action?key=CK&openId=66942 - 46k
https://wiki.sdn.sap.com/wiki/pages/recentlyupdated.action?maxRecentlyUpdatedPageCount=40&key=CK - 56k
regards
karthik
reward me points if usefull. -
Loyalty Point condition 2901 inactive
Hi Guys
when I configuration the loyalty manangement Point to Pay
my conditon type 2901 display inactive,the detail informatin as follow
someone knows how to solve it ? thank youHi Guys
when I configuration the loyalty manangement Point to Pay
my conditon type 2901 display inactive,the detail informatin as follow
someone knows how to solve it ? thank you -
Error while Deploying Performance Management samples in XI R3.0
Error while Deploying Performance Management samples in XI R3.0
I get an error when deploying the PM samples. I have set the PM repository pointing to AFDEMO database
I have used to Java of BO dir as well as the program files\Java (1.6.03)
I run the runPublishUtil.bat and get the below error
Can anyone help me to publish the PM demo's
Regards
Ishaq
Edited by: ishaqbaig on May 10, 2009 1:42 PMError when runPublishUtil,bat
C:\Program Files\Business Objects\Performance Management 12.0\setup>set JARLOC=..\..\common\4.0\java\lib\
usage : runPublishUtil.bat [dbusername] [dbuserpassword]
C:\Program Files\Business Objects\Performance Management 12.0\setup>java -classpath publishUtil.jar;..\..\common\4.0\java\lib\cecore.jar;..\..\common\4.0\java\lib\logging.jar;..\..\common\4.0\java\lib\celib.jar;..\..\common\4.0\java\lib\ceplugins.jar;..\..\common\4.0\java\lib\cesession.jar;..\..\common\4.0\java\lib\corbaidl.jar;..\..\common\4.0\java\lib\ebus405.jar;..\..\common\4.0\java\lib\external\xercesImpl.jar;..\..\common\4.0\java\lib\external\xml-apis.jar;..\..\common\4.0\java\lib\rascore.jar;..\..\common\4.0\java\lib\serialization.jar;..\..\common\4.0\java\lib\cereports.jar com.businessobjects.util.PublishUtil ".\PublishUtil.properties" sa forms45
caught SDKException
com.crystaldecisions.sdk.exception.SDKServerException: Enterprise authentication
could not log you on. Please make sure your logon information is correct. (FWB
00008)
cause:com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
detail:Enterprise authentication could not log you on. Please make sure your logon information is correct. (FWB 00008)
The server supplied the following details: OCA_Abuse exception 10498 at [.\secpluginent.cpp : 826] 42040 {}
...Invalid password
at com.crystaldecisions.sdk.exception.SDKServerException.map(SDKServerException.java:107)
at com.crystaldecisions.sdk.exception.SDKException.map(SDKException.java:193)
at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:701)
at com.crystaldecisions.sdk.occa.security.internal.LogonService.userLogon(LogonService.java:295)
at com.crystaldecisions.sdk.occa.security.internal.SecurityMgr.userLogon(SecurityMgr.java:162)
at com.crystaldecisions.sdk.framework.internal.SessionMgr.logon(SessionMgr.java:422)
at com.businessobjects.util.PublishUtil.logon(Unknown Source)
at com.businessobjects.util.PublishUtil.main(Unknown Source)
Caused by: com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
at com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuseHelper.read(oca_abuseHelper.java:106)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAs._LogonEx4Stub.UserLogonEx4(_LogonEx4Stub.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.crystaldecisions.enterprise.ocaframework.ManagedService.invoke(ManagedService.java:420)
at com.crystaldecisions.sdk.occa.security.internal._LogonEx4Proxy.UserLogonEx4(_LogonEx4Proxy.java:222)
at com.crystaldecisions.sdk.occa.security.internal.LogonService.doLogon(LogonService.java:347)
at com.crystaldecisions.sdk.occa.security.internal.LogonService.doUserLogon(LogonService.java:676)
... 5 more
Exception in thread "main" java.lang.NullPointerException
at com.businessobjects.util.PublishUtil.waitForValidInputFRS(Unknown Source)
at com.businessobjects.util.PublishUtil.main(Unknown Source)
Edited by: ishaqbaig on May 10, 2009 12:49 PM -
How to sample one color from gradient
I have an object in Illustrator CC that has a gradient applied to it. I would like to use the eyedropper tool to sample just one color selected from a specific point in the gradient but when I click on the object with the eyedropper the whole gradient is picked up.
How to I sample just one point in a gradient?
I looked at my eyedropper preferences. Everything is checked. I didn't see an option that would let me do what I wanted.
Any suggestions?
PhilYeah I sure did try, but unfortunately I believe it's a limitation of the operating system. Windows on Windows OS like to be contained within the window area. In this case, illustrator loses focus of the cursor when you leave the window borders. I was hoping you were on Windows and had a way around it.
-
Alt Option Key PS CC Using Mouse or Tablet drags app window instead of sampling when using Clone too
When I open PS CC on my Mac Mini (Mavericks Latest version) or my MBPr (same OS.v)
Here are the steps.
MacMini and Mac:
Open Photoshop
Open any image
Switch to Pen tool, stamp tool, or any tool that uses Option key as modifer
Draw a couple points, sample, whatever
Now, try to modify an anchor point using the convert anchor tool, or sample using the stamp tool. Just hold the option key down and drag.
WOAH! My entire application is moving around and the modifier isn't working, instead it's modifying the XY of the application window.
Check this out... When I do this on my girlfriends side of my MBPr, it's fine. Infact I do retouching on her sidebecuase of this. I just noticed it was doing this at work. I don't use PS a lot at work, mostly Illutsrator.
Anyways...
Any one else having this problem?
Devices this is replicated with..
M$ Mouse on MacMini
WacomTablet Intuous4 on MBPr
Just tried using the MBPr track pad, and it's fine.
I'm starting to think it's the wacom drivers or something.I'm not seeing anything there.
-
Loyalty Management- Finance integration
Dear All,
At the end of the day, all loyalty points are liabilities for the companies who runs loyalty program. These liabilities in terms value (for example 10 loyalty points equal to 1 USD) has to be posted to Accounts as "Amount Payable".
Do we have any standard integration for loyalty points posting to Accounts ECC ?
Regards
PramodHi Pramod,
As per my knowledge, you have to develop this. Every customer will handle this scenario in a certain way and SAP has not provided a Standard solution for this topic so far.
Regards,
Caíque
Maybe you are looking for
-
How can I tell if my water damaged 4S is unlocked?
I'm trying to sell my iphone 4S that has water damage. how can I tell if it is unlocked and no longer assoc with itunes account? people keep asking for IMEI and SN and tell me I can check this myself but when I call to find out they say I have to pa
-
Index does not exist error while running the query
Hi Everone, I am facing some problem when i try to tun the query in BEx. When i run the query, it is giving the error "Index does not exist". Please help me out. With Regards Pavan Edited by: PavanRaj_S on Mar 3, 2010 4:50 AM
-
hi I cant conect m iphone. it went black dead sudently. Im charging but no reaction at all. The bottons dont react. its dead? what to do???.
-
How to delete leading zeros for amount fields
Hi all, I have problem with the leading zeros, where I am populating nearly 30 amount fileds in my statement.i want to delete leading zeros. I have tried with shift and pack. and I cannot call every time the function module *alpha_output or input. c
-
Urgent Correction cancellation
Can anyone tell me how to close an urgent correction, the associated change request and support message after the change request has been approved but then the decision is made that no work is required. The developer has not been assigned to the urg