Sunday, December 9, 2012

Spring Suite Tool New Project Template Not Loading

Kept getting the following error when trying to create a new Spring template project in STS. 

Connection to https://raw.github.com/SpringSource/spring-data-gemfire-sts-templates/master/builds/descriptor.xml failed on sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. Retry attempt 0 started

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1868)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1338)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:998)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:685)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:111)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1565)
    at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
    at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer$GzipGetMethod.execute(HttpClientRetrieveFileTransfer.java:120)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
    at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.performConnect(HttpClientRetrieveFileTransfer.java:1129)
    at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.openStreams(HttpClientRetrieveFileTransfer.java:699)
    at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:879)
    at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:570)
    at org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter.sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:106)
    at org.eclipse.equinox.internal.p2.transport.ecf.FileReader.sendRetrieveRequest(FileReader.java:422)
    at org.eclipse.equinox.internal.p2.transport.ecf.FileReader.read(FileReader.java:273)
    at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.stream(RepositoryTransport.java:172)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.springsource.ide.eclipse.commons.internal.core.net.P2TransportService.stream(P2TransportService.java:139)
    at org.springsource.ide.eclipse.commons.core.HttpUtil.stream(HttpUtil.java:125)
    at org.springsource.ide.eclipse.commons.content.core.ContentManager.readFromUrl(ContentManager.java:306)
    at org.springsource.ide.eclipse.commons.content.core.ContentManager.refresh(ContentManager.java:360)
    at org.springframework.ide.eclipse.wizard.template.TemplateSelectionWizardPage$10$1.run(TemplateSelectionWizardPage.java:682)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
    at sun.security.validator.Validator.validate(Validator.java:260)
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)
    ... 36 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
    ... 42 more


Fix for the above problem :
1) Goto https://raw.github.com/SpringSource/spring-data-gemfire-sts-templates/master/builds/descriptor.xml and export the certificate from this website and save it in your sts jdk cacerts file.
2) Restart STS and done.

Saturday, October 27, 2012

Print alternate string in Java by 2 threads

I kept getting asked this question in interviews so here it is for the benefit of others


package com.threads;

import java.util.logging.Level;
import java.util.logging.Logger;


public class Master {
    private static Object lock = new Object();
    public static void main(String[] args) {
        new Slave1(lock).start();
        new Slave2(lock).start();
    }
   
}

class Slave1 extends Thread {
   private Object lock;
   Slave1(Object lock){
       this.lock=lock;
   }
   @Override
   public  void run(){
     while(true){
       synchronized(lock){
            System.out.println("Slave1");
            lock.notify();
            try {
                lock.wait();
            } catch (InterruptedException ex) {
                Logger.getLogger(Slave1.class.getName()).log(Level.SEVERE, null, ex);
               
            }
           
        }
     }
    }
}


class Slave2 extends Thread {
   private Object lock;
   Slave2(Object lock){
       this.lock=lock;
   }
   @Override
   public  void run(){
       while(true){
        synchronized(lock){
            System.out.println("Slave2");
           
               
                lock.notify();
                try {
                    lock.wait();
                } catch (InterruptedException ex) {
                    Logger.getLogger(Slave2.class.getName()).log(Level.SEVERE, null, ex);
                }
           
        }
       }
    }
}

Ran this program and then redirected input to slave.log
Ran the following check to verify it is working.
 awk '^C%2 {print > "newfile"}' slave.log
grep -i slave1 newfile

I got no lines containing slave1 hence it works.

On doing some more research on the internet i found the following link ordered multi-threading in java .
This made me think that the above situation should not be present in any good design as this removes the parallelism for which threads are being used in the first place.

Facts about inner classes in Java

An inner class is which is declared as static is called a Nested class.
Inner classes have access to private members if the outer class.
You can have inner classes inside inner classes. They will have access to the outermost class members.

Inner classed solve the problem of multiple implementation inheritance in java.

Following is valid Java code

public interface Hello {

class helloWorld {

public static void main(Syring [] args){

System.out.println("HELLO WORLD");

}

}

}

Monday, June 11, 2012

Adding margin Specifically for IE 8



<div style="background:BLUE;height:300px;width:300px">
<div style="background:RED;height:200px;margin: 10 10 10 10;width:200px;margin: 10/ 20/ 30/ 40/ !important;">

The figure above will be differnet for different browsers

Thursday, May 31, 2012

java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b in SSL HTTPS Solved


log4j:WARN No appenders could be found for logger (org.springframework.web.client.RestTemplate).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b
at javax.crypto.KeyGenerator.a(DashoA13*..)
at javax.crypto.KeyGenerator.(DashoA13*..)
at javax.crypto.KeyGenerator.getInstance(DashoA13*..)
at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(JsseJce.java:223)
at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.(RSAClientKeyExchange.java:89)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:744)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:238)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:925)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1197)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1181)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at org.springframework.http.client.SimpleClientHttpRequest.executeInternal(SimpleClientHttpRequest.java:69)
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:52)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:438)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:377)
at com.test.TestSecureHTTP.main(TestSecureHTTP.java:42)




I received the above error when i was trying to call a RESTFUL Webservice using restTemplate.exchange. 


REASON FOR THIS : Sun has changed the location of SUNJCE_b in Java 6 and above so it is no more able to find this class in the path specified as HTTPClient which underlies resttemplate is searching for this class in wrong package. 


SOLUTION:
I tried fixing this by adding old jce.jar which contains the class above JDK in Eclipse configure build path setting but it dis not work . 


Finally i got the code working by adding the following lines of code in my program

             try {
Class.forName("javax.crypto.SunJCE_b");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Complete program below



package com.test;


import java.util.Properties;


import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;


import com.cisco.swtg.bss.util.Base64Coder;


public class TestSecureHTTP {

public static void main(String[] args) {

Properties props= new Properties();
props.put("javax.net.ssl.trustStoreType","jks");
   props.put("javax.net.ssl.trustStore","C:\\trust.jks");

   props.put("java.home", "C:\\Program Files\\Java\\jdk1.7.0_04");
   try {
Class.forName("javax.crypto.SunJCE_b");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
   System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
   props.put("javax.net.ssl.trustStorePassword","changeit");
   System.setProperties(props);
   HttpHeaders entityHeaders = new HttpHeaders();


entityHeaders.set("content-type", "application/json");

HttpEntity requestEntity = new HttpEntity(entityHeaders);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity result= restTemplate.exchange("THE URL", HttpMethod.GET, requestEntity, String.class);
System.out.println(result.getBody());

   
}


}


Saturday, May 12, 2012

Concurrent file downloads using POST iframe and form

Recently i was faced with a scenario where user would select a few files from a list and click download. All the downloads should start in parallel . The file was supposed to be downloaded from a POST url so we could not use the regular hidden iframe since we could not send POST parameters to an iframe. Following is the solution i came up with after searching the internet. All credits go to the original authors. PLease refer links below

Related StackOverflow Question
Detecting the File Download Dialog In the Browser
Best Link on this subject

My Sample code :



Friday, May 4, 2012

Apple Push Notification in Java

Google project http://code.google.com/p/javapns/ for send ing push notifications.

JavaPNS 2.2

JavaPNS is a Java library to send notifications through the Apple Push Notification Service

Welcome to the JavaPNS project, home of the most user-friendly, powerful and fine-tuned Java library for APNS! This fully-featured Java library allows developers to push notifications to iOS devices (iPhone, iPod, iPad, etc.) through the Apple Push Notification Service using a simple yet powerful set of tools. First-time users will find the library to be extremely easy to use (start with a single line of code!), while advanced users will benefit from the library's flexible design and scalability features.

Capabilities

  • Start sending notifications using a single line of code
  • Get started quickly with smart default settings
  • Easily switch between Apple's sandbox or production services
  • Use predefined simple notifications, or create custom and/or complex payloads
  • Benefit from the enhanced notification format
  • Send thousands of notifications using the built-in multithreaded transmission engine
  • Examine push notification results immediately and accurately
  • Query the Feedback Service with a single line of code to find inactive devices
  • Auto-resend notifications ignored by Apple servers after an error
  • Push notifications to Apple's Newsstand application with one line of code
  • Setup connection pools (queues) in no time
  • Use bundled command-line tools to test push notification and feedback
  • Rely on the library's strong error and exception management
  • Get started quickly thanks to the built-in safeguards against common mistakes
  • Build upon JavaPNS's developer-friendly API to extend its functionalities
  • Learn everything about the library through its complete and up-to-date javadoc
  • and much more!

Wednesday, May 2, 2012

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

10754 [main] ERROR FileBrokerServiceHdlr  - sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1649)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:632)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
    at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at com.cisco.csc.broker.FileBrokerServiceHdlr.doGet(FileBrokerServiceHdlr.java:268)
    at com.cisco.csc.CSCDownloadHandler.doGet(CSCDownloadHandler.java:78)
    at com.cisco.swtg.sasi.web.controller.fileservice.FileDownloadController.processDownload(FileDownloadController.java:130)
    at com.cisco.swtg.sasi.web.controller.fileservice.FileDownloadController.main(FileDownloadController.java:194)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:323)
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217)
    at sun.security.validator.Validator.validate(Validator.java:218)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
    ... 20 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:318)
    ... 26 more




If you get the above exception in your Eclipse . PLease follow the steps below to remove this. BTW this happens because the HTTPClient does not have the certificate sent by the server in its trusted certificate list.

1) Download Portecle (google it). It is a java tool for importing certificates.




2) Go to the URL the HTTPClient is pointing to eg: https://wsgx-dev.xyz.com in forefox. It will give some validation error on the page . That is fine . Just click on the left to the URL in the browser URL and you will see the certificate dialog. The process is shown above. Finally click on export and save it on your file system.

3) Now go to C:\Program File \java \ jdk1.xx\ jre \lib\security [Path for jdk i am using for my eclipse] and open the file cacerts. This is the file which contains the certificates for jdk on my machine.

Open cacerts with portecle . It will ask for password which is : changeit . Now import the trusted ceritficate from the file system where you saved your cetificate earlier. Save the keystore.

Now you should be able to run your program and it will not give the erro.


Friday, April 20, 2012

Thursday, April 19, 2012

Deployment of 'XYZ' requested, but the deployment is not present

You get this error in JBOSS AS7 when let us say you have a file named xyz.war and you try to deploy/redeploy it by creating a file in the same directory by the name xyz.dodeploy .

instead what you should have done is you should have created a file called xyz.war.dodeploy.

Tuesday, April 17, 2012

The consecutive heads problem

The consecutive heads problem (Chapter 6, exercise 2, page 214)
Heads. . . .
Heads. . . .
Heads. . . .
A weaker man might be moved to re-examine his faith, if in nothing
else at least in the law of probability.
—Tom Stoppard, Rosencrantz and Guildenstern are Dead, 1967
Write a program that simulates flipping a coin repeatedly and continues until three
consecutive heads are tossed. At that point, your program should display the total
number of coin flips that were made.

import java.util.Arrays;
import java.util.Random;

public class HeadsTails {
private static int[] results = { 0, 0, 0 };

/**
* @param args
*/
public static void main(String[] args) {
boolean flag = false;
Random r = new java.util.Random();

int c = 0;
while (!flag) {

if (r.nextInt() % 3 == 0) {
System.out.println("Heads");
results[0] = results[1];
results[1] = results[2];
results[2] = 1;

System.out.println(Arrays.toString(results));
if (checkheads())
break;
} else {
System.out.println("TAILS");
results[0] = results[1];
results[1] = results[2];
results[2] = 0;
System.out.println(Arrays.toString(results));
}
}
c++;
}

private static boolean checkheads() {
if (results[0] == 1 && results[1] == 1 && results[2] == 1)
return true;
else
return false;

}

}

Prinitng diamond in java

In this problem, your mission is to write a function
private void drawDiamondOutline(int size)
that draws the outline of a diamond whose sides are composed of the number of stars
indicated by size. For example, if your run method is
public void run() {
drawDiamondOutline(8);
}
your program should print asterisks and spaces in just the right places to produce the
following sample run:
*
* *
* *
* *
*
/**
* @author gagandsi
*
*/
public class DiamondOutline {

private void drawDiamondOutline(int size) {
// Upper triangle //
size -= 2;
for (int j = 0; j < size + 1; j++)
System.out.print(" ");
System.out.println("*");
for (int k = size; k > 0; k--) {

for (int j = 0; j < k; j++)
System.out.print(" ");

System.out.print("*");

for (int jj = size; jj > k - 1; jj--) {
System.out.print(" ");
}
for (int jj = size; jj > k; jj--) {
System.out.print(" ");
}
System.out.print("*");
System.out.println("");

}

// Lower triangle//

for (int i = 0; i < size + 1; i++) {
for (int x = 0; x < i; x++)
System.out.print(" ");

System.out.print("*");

for (int jj = 0; jj < size - i + 1; jj++) {
System.out.print(" ");
}
for (int jj = 0; jj < size - i; jj++) {
System.out.print(" ");
}
System.out.print("*");
System.out.println("");
}
for (int j = 0; j < size + 1; j++)
System.out.print(" ");
System.out.println("*");
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new DiamondOutline().drawDiamondOutline(5);

}

}


You might want to add a check for negative or zero as input.

Sunday, April 15, 2012

Flash Object keeps showing loading

You should add the mounted virtual drive to the trusted folders

Wednesday, April 11, 2012

Don't Expect

If you do not expect you do not have anything to compare your present or future with and you take it as is so DON'T EXPECT ANYTHING.

Wednesday, April 4, 2012

Scrum Questions

Question: Which of the following best describes a sprint?
The correct answer was:

A sprint is a condensed amount of time in which a development team works as many hours as they need to in order to finish the work assigned to them.

A sprint is a pre-specified amount of time in which the development team works at a sustainable pace to complete a chosen set of work.

A sprint is a fixed amount of time set aside for a team to run tests and fix any outstanding bugs right before the product ships.

A sprint is a pre-specified period of time during which team members choose individual items from the product backlog to work on. as each item is completed, a new item is brought into the sprint.
Correct Answer Explanation:
The concepts of sprints, sustainable pace, and a sprint backlog are discussed in the following sources: Scrum Primer, Mountain Goat Software website, and the Scrum Guide.

"One of the principles of agile development is “sustainable pace,” and only by working regular hours at a reasonable level can teams continue (running sprints) indefinitely." Scrum Primer

"Scrum projects make progress in a series of sprints, which are timeboxed iterations no more than a month long. At the start of a sprint, team members commit to delivering some number of features that were listed on the project’s product backlog. At the end of the sprint, these features are done--they are coded, tested, and integrated into the evolving product or system. At the end of the sprint a sprint review is conducted during which the team demonstrates the new functionality to the product owner and other interested stakeholders who provide feedback that could influence the next sprint." Mountain Goat Software website.

"A sprint is an iteration. Sprints are time-boxed. ... Sprints occur one after another, with no time in between sprints." Scrum Guide
Question #2
Question: What is the maximum time that Scrum recommends the team spend in the daily scrum (daily standup)?
The correct answer was:

Fifteen minutes

Thirty minutes

One hour

Four hours

As long as it takes
Correct Answer Explanation:
"A daily Scrum meeting is time boxed at fifteen minutes and terminates at the end of fifteen minutes, regardless." Scrum Primer

"This is a short (15 minute) meeting..." Scrum Papers

"...the meeting is restricted to 15 minutes, which, surprisingly is ample time." Do Better Scrum
Question: In Scrum, what do we call the individual, detailed pieces of work needed to convert a product backlog item into working software. Hint: They make up the sprint backlog and are often estimated in hours.
The correct answer was:

Tasks

Use cases

Fbis

Stories

Scrum bits
Correct Answer Explanation:
From the Scrum Guide: "Tasks are the detailed pieces of work needed to convert the Product Backlog into working software. ... This task list is called the Sprint Backlog."
You got it right!
Question #4
Question: Which of the following is NOT a typical Scrum artifact?
The correct answer was:

Product backlog

Sprint backlog

Burndown chart

Gantt chart
Correct Answer Explanation:
While there is some debate as to whether there are three or four artifacts, a Gantt chart is not a typical Scrum artifact. The Scrum Primer, MountainGoatSoftware.com, and Do Better Scrum all include the product backlog, sprint backlog, and burndown charts in their lists of artifacts.
Question: Which of the following is NOT a role in Scrum?
The correct answer was:

Team

Scrummaster

Product owner

Project manager
Correct Answer Explanation:
From Do Better Scrum: "The responsibilities of the traditional project manager are divided over the three roles in the Scrum Team:
‣ The Product Owner manages the product (and return on investment)
‣ The ScrumMaster manages the process
‣ The team manages itself."

From MountainGoatSoftware.com : "One convenient way to think of the interlocking nature of these three roles is as a race car. The team is the car itself, ready to speed along in whatever direction it is pointed. The product owner is the driver, making sure that the car is always going in the right direction. The ScrumMaster is the chief mechanic, keeping the car well-tuned and performing at its best."
Question: Which of the following is NOT traditionally one of the Scrum activities?
The correct answer was:

Sprint planning

Sprint review

Sprint retrospective

Daily scrum

Weekly inspection
Correct Answer Explanation:
From Do Better Scrum: "The sprint is the heartbeat of the Scrum cycle. It is bookmarked by sprint planning at
the start and by the sprint review and sprint retrospective at the end. ... Each day during the sprint the team holds a daily scrum meeting."

From MountainGoatSoftware.com: "The sprint itself is the main activity of a Scrum project. ... The first activity of each sprint is a sprint planning meeting. ... On each day of the sprint, a daily scrum meeting is attended by all team members.... At the end of a sprint, the team conducts a sprint review.... Another activity performed at the end of each sprint is the sprint retrospective."
Question #7
Question: Which of the following responsibilities does NOT fall to the ScrumMaster
The correct answer was:

removing impediments

Facilitating meetings

Reminding the team of the process

Assigning tasks to team members

Pushing back against product owner requests when needed
Correct Answer Explanation:
From MountainGoatSoftware.com: "The ScrumMaster is the team’s coach and helps team members achieve their highest level of performance. A ScrumMaster differs from a project manager in many key ways, including that the ScrumMaster does not provide day-to-day direction to the team and does not assign tasks to individuals. A good ScrumMaster shelters the team from outside distractions, allowing team members to focus maniacally during the sprint on the goal they have selected." (underline added for emphasis)

From the Scrum Primer: "The ScrumMaster helps the product group learn and apply Scrum to achieve business value. The ScrumMaster does whatever is in their power to help the Team and Product Owner be successful. The ScrumMaster is not the manager of the Team or a project manager; instead, the ScrumMaster serves the Team, protects them from outside interference, and educates and guides the Product Owner and the Team in the skillful use of Scrum."

From Do Better Scrum: "The responsibilities of the ScrumMaster role are:
‣ Empowering and shepherding the team
‣ Removing impediments
‣ Keeping the process moving
‣ Socialising Scrum to the greater organisation
Metaphor: The ScrumMaster is a facilitator, coach, mentor and bulldozer!"
Question #8
Question: Which of the following is NOT a responsibility of the product owner?
The correct answer was:

Prioritizing the product backlog

Keeping the product backlog up to date

Assigning tasks to team members during the sprint

Working with stakeholders to determine product features

Inspecting work at sprint review
Correct Answer Explanation:
From Scrum Primer: "The product owner is responsible for maximizing return on investment (ROI) by identifying product features, translating these into a prioritized list, deciding which should be at the top of the list for the next Sprint, and continually re-prioritizing and refining the list." and "This is a key practice in Scrum: The team decides how much work it will commit to complete, rather than having it assigned to them by the product owner."

From Do Better Scrum: "The responsibilities of the product owner role are:
‣ Working on a shared vision
‣ Gathering requirements
‣ Managing and prioritising the product backlog
‣ Accepting the software at the end of each iteration
‣ Managing the release plan
‣ The profitability of the project (ROI)
Metaphor: The Product Owner is a CEO."

From MountainGoatSoftware.com: "While the ScrumMaster focuses on helping the team be the best that it can be, the product owner works to direct the team at the right goal. The product owner does this by creating a compelling vision of the product and then conveying that vision to the team through the product backlog."
Question #9
Question: What are the two primary artifacts of a sprint planning meeting?
The correct answer was:

A sprint goal and a sprint backlog

A requirements document and a gantt chart

A requirements document and a test plan

A test plan and a gantt chart
Correct Answer Explanation:
From Do Better Scrum: "An outcome of (sprint planning) is the sprint backlog, or the list of tasks that the team collectively needs to execute in order to turn the items in the selected product backlog into running tested features."

From MountainGoatSoftware.com: "During this meeting the product owner and team talk about the highest-priority items on the product backlog. Team members figure out how many items they can commit to and then create a sprint backlog, which is a list of the tasks to perform during the sprint."

From Scrum Guide: (During the first half of the sprint planning meeting), a sprint goal is crafted. The sprint goal is an objective that will be met through the implementation of the product backlog."
Question #10
Question: Which of the following are roles in the Scrum framework? (select all that apply)
The correct answer was:

Scrummaster

Product owner

Project owner

Team lead

Team
Correct Answer Explanation:
In Scrum, there are three roles: the product owner, the team, and the ScrumMaster.
Question #11
Question: Which of the following are activities found in the Scrum framework? (select all that apply)
The correct answer was:

Daily scrum or daily standup

Weekly scrum or weekly standup

Sprint planning

Sprint review

Sprint retrospective
Correct Answer Explanation:
From MountainGoatSoftware.com: "The first activity of each sprint is a sprint planning meeting.... On each day of the sprint, a daily scrum meeting is attended by all team members.... At the end of a sprint, the team conducts a sprint review.... Another activity performed at the end of each sprint is the sprint retrospective.
Question #12
Question: Which of the following are artifacts associated with Scrum? (select all that apply)
The correct answer was:

Product backlog

Sprint backlog

Product specification

Effort chart

Burndown chart
Correct Answer Explanation:
Three of the main artifacts are the product backlog, the sprint backlog, and burndown charts. See Scrum Primer, Do Better Scrum, and MountainGoatSoftware.com
Question: Which of the following best summarizes what it means when Scrum says that a sprint or activity is timeboxed?
The correct answer was:

there is a recommended amount of time for the event.

There is a predefined time limit for the event.

The event must take place by a certain date.

There is not enough time to complete the event.

The time allocated for the event must be extended.
Correct Answer Explanation:
Scrum Primer: "Sprints are timeboxed – they end on a specific date whether the work has been completed or not, and are never extended."
Question #14
Question: A major theme in Scrum is “inspect and adapt.” Which of the following best summarizes that theme?
The correct answer was:

Scrum insists on auditors who frequently inspect the work of the team and suggest ways to adapt the process in order to improve quality.

Scrum recommends that upper management inspect the burndown charts and notes from the daily scrums to find ways in which the team should adapt their practices to be more productive.

Scrum emphasizes taking a short step of development, inspecting both the resulting product and the efficacy of current practices, and then adapting the product goals and process practices.

Inspect and adapt refers to the scrummaster's role in inspecting the work and writing stories designed to help the team produce higher quality software.
Correct Answer Explanation:
"A major theme in Scrum is “inspect and adapt.” Since development inevitably involves learning, innovation, and surprises, Scrum emphasizes taking a short step of development, inspecting both the resulting product and the efficacy of current practices, and then adapting the product goals and process practices. Repeat forever." from Scrum Primer

"There are three points for inspection and adaptation in Scrum. The Daily Scrum meeting is used to inspect progress toward the Sprint goal, and to make adaptations that optimize the value of the next work day. In addition, the Sprint Review and Planning meetings are used to inspect progress toward the Release Goal and to make adaptations that optimize the value of the next Sprint. Finally, the Sprint Retrospective is used to review the past Sprint and determine what adaptations will make the next Sprint more productive, fulfilling, and enjoyable." from the Scrum Guide
Question #15
Question: How does a team know when a backlog item is done?
The correct answer was:

The scrummaster says it is done.

The sprint is over.

The testers say it is done.

It meets the team and product owner's negotiated definition of done.
Correct Answer Explanation:
Do Better Scrum: We must create a definition of done for the team—what does it mean when the team says it has completed a story?

From Scrum Primer: (The ScrumMaster) prevents the team from demonstrating or discussing product backlog items that are not ‘done’ according to the “Definition of Done.” and "The Product Owner and Team ... review the “Definition of Done” (which was established earlier) that all items must meet"
Question #16
Question: Why does Scrum make it difficult for product owners to make changes to a sprint that is underway?
The correct answer was:

Because the team needs to be able to limit the authority of the product owner

Because asking the team to make a real commitment comes with an associated cost of not shifting the basis of that commitment in mid-sprint

Because the team and product owner want to keep upper management in the dark about planned changes

Because it provides an incentive for the product owner to attend the meetings
Correct Answer Explanation:
From Scrum Primer: "One of the pillars of Scrum is that once the Team makes its commitment, any additions or changes must be deferred until the next sprint. This means that if halfway through the sprint the product owner decides there is a new item he or she would like the team to work on, he cannot make the change until the start of the next sprint. If an external circumstance appears that significantly changes priorities, and means the team would be wasting its time if it continued working, the product owner or the team can terminate the sprint. The team stops, and a new sprint planning meeting initiates a new sprint. The disruption of doing this is usually great; this serves as a disincentive for the product owner or team to resort to this dramatic decision."

From MountainGoatSoftware.com "In return for their commitment to completing the selected tasks (which, by definition, are the most important to the product owner), the product owner commits that he or she will not throw new requirements at the team during the sprint. Requirements are allowed to change (and change is encouraged) but only outside the sprint. Once the team starts on a sprint it remains maniacally focused on the goal of that sprint."
Question #17
Question: Of the following choices, which is a key reason to adopt an agile process like Scrum?
The correct answer was:

To be up to date on the latest process

To shake things up in the organization

To hold programmers and testers accountable for their work

To be better able to respond to change
Correct Answer Explanation:
From Do Better Scrum: "Traditional development methodologies rely on documents to record and pass on knowledge from one specialist to the next. Feedback cycles are too long or even nonexistent."

From Scrum Primer: "The agile family of development methods were born out of a belief that an approach more grounded in human reality – and the product development reality of learning, innovation, and change – would yield better results. Agile principles emphasize building working software that people can get hands on quickly, versus spending a lot of time writing specifications up front. Agile development focuses on cross-functional teams empowered to make decisions, versus big hierarchies and compartmentalization by function. And it focuses on rapid iteration, with continuous customer input along the way."
Question #18
Question: What is the primary purpose of the daily scrum (sometimes called a daily standup)?
The correct answer was:

To give a status report to the scrummaster

To give a status report to the product owner

To share as a team what each member is working on and uncover obstacles standing in the way of completing the work

To give team members a chance to take a break from their tasks
Correct Answer Explanation:
From Scrum Primer: "It is the Team’s opportunity to synchronize their work and report to each other on obstacles."

From Do Better Scrum: "The daily Scrum meeting is NOT for reporting progress to the ScrumMaster or Product Owner or anyone else."
Question #19
Question: In what order should the product backlog be kept?
The correct answer was:

Chronological

Alphabetical

Random

Priority
Correct Answer Explanation:
Scrum Primer: "At any point, the Product Backlog is the single, definitive view of 'everything that could be done by the Team ever, in order of priority.'”

MountainGoatSoftware.com: "The product backlog is prioritized by the product owner so that the team always works on the most valuable features first."
Question: True or false? Agile methodologies think all documentation is a waste of time.
The correct answer was:

True

False
Correct Answer Explanation:
From The Agile Manifesto (a full copy is included in Do Better Scrum): "Through this work we have come to value ... Working software over comprehensive documentation ... That is, while there is value in the items on the right, we value the items on the left more."

Do Better Scrum: "Scrum is purposely silent about all other documentation and artifacts. This sometimes leads to the misunderstanding that Agile teams don’t need to do any documentation. I coach teams to produce only those artefacts that are really valuable to themselves and to others in the future."
You got it right!
CSM Course Evaluation

Question #21
Question: What does Scrum advise a team do with the product backlog items it chooses to bring into the sprint?
The correct answer was:

The team should break each product backlog item into tasks and estimate each task in terms of effort.

The product owner assigns each product backlog item to the specialist best suited to carry out the work.

The team doesn't do anything with the product backlog items. scrum doesn't use tasks or task lists.

The team asks the scrummaster to research the product backlog items and decide who should work on each one.
Correct Answer Explanation:
From the Scrum Primer: "The team starts with the first item on the product backlog – in other words, the product owner’s highest priority item – and working together, breaks it down into individual tasks, which are recorded in a document called the sprint backlog. ... At the end of the meeting, the team will have produced a list of all the tasks with estimates (typically in hours or fractions of a day)"

From the Scrum Papers: "When the Scrum team has selected and committed to deliver a set of top priority features from the product backlog, the ScrumMaster leads the team in a planning session to break down product backlog features into sprint tasks."
Question #22
Question: Who ultimately decides when the team has enough work for the sprint?
The correct answer was:

The scrummaster

The product owner

The team

The product owner, scrummaster, and team vote to determine when the sprint backlog is full.
Correct Answer Explanation:
From the Scrum Primer: The team will move sequentially down the product backlog ... until it’s used up all its estimated capacity."

From the Scrum Papers: "The team decides how much work it can successfully take into the sprint based on team size, available hours, and level of team productivity."

From Do Better Scrum: "The team commits to the product owner what they believe they can deliver in the form of running tested features."

From topic page on Mountain Goat Software: "After the sprint planning meeting, the Scrum team meets separately to discuss what they heard and decide how much they can commit to during the coming sprint. In some cases there will be negotiation with the product owner but it will always be up to the team to determine how much they can commit to completing."
Question #23
Question: Who can be invited to the sprint review?

Hint: The key word in this question is can. Certain roles are required to attend the sprint review, this question is specifically concerned with who the team is allowed to invite.
The correct answer was:

Only the team

The team, scrummaster, and product owner only

The product owner and up to two invited guests

The team, scrummaster, product owner, and anyone else who's interested
Correct Answer Explanation:
"When asked who should be invited to the sprint review, I answer ‘the whole world’. My intent here is to help the ScrumMaster and the entire organisation understand that the direct attention and feedback of a broad constituency of the organisation is crucial to maximising the value the team will deliver in succeeding sprints." from Do Better Scrum

"Present at this meeting are the Product Owner, Team members, and ScrumMaster, plus customers, stakeholders, experts, executives, and anyone else interested." from the Scrum Primer
Question #24
Question: What happens when a backlog item fails to meet the definition of “done” at the end of the sprint?
The correct answer was:

The team completes the product backlog item during the next sprint.

The incomplete backlog item is placed back in the product backlog.

The scrummaster points out the person to blame for the item not being finished.

The team is given 36 hours to finish the incomplete product backlog item.
Correct Answer Explanation:
"Items that are not ‘done’ go back to the Product Backlog and will be re-prioritized by the Product Owner." from the Scrum Primer. http://scrumtraininginstitute.com/home/stream_download/scrumprimer
Question: Which of the following best describes the product backlog items that are lower in priority?
The correct answer was:

Every product backlog item, even those very low in priority, should be defined well enough to be completed during a sprint.

All product backlog items are fully defined in the requirements and design phase.

Lower priority backlog items are coarse grained and should be progressively refined as their priority increases.

Lower priority backlog items are kept in a separate product backlog.
Correct Answer Explanation:
"To minimize rework, only the highest priority items need to be detailed out. The Product Backlog items that will occupy the Teams for the upcoming several Sprints are fine-grained, having been decomposed so that any one item can be done within the duration of the Sprint." --Scrum Guide http://www.scrum.org/storage/scrumguides/Scrum%20Guide.pdf#view=fit

"Low priority items, far from being implemented and usually “coarse grained” or large, have less requirements details. High priority and fine-grained items that will soon be implemented tend to have more detail." --Scrum Primer. http://scrumtraininginstitute.com/home/stream_download/scrumprimer
Question #26
Question: Which of the following best summarizes what is happening in the sprint, according to the burndown chart pictured here (click picture to view larger)?
The correct answer was:

The team is on track to complete all the items in the sprint.

The team is at risk of having items incomplete at the end of the sprint. the team may need to consider making an adjustment.

The team is on track to complete all the items in the sprint early. if the trend continues, they may need to add scope.

The team is trending toward a late release. they should negotiate a new deadline
Correct Answer Explanation:
The picture shown here is from The Scrum Primer. It shows work remaining that is higher than the idealized trendline. The team may still finish all its items but is currently trending toward having some items incomplete at the end of the sprint.

"If the burndown line is not tracking downwards towards completion near the end of the Sprint, then the Team needs to adjust, such as to reduce the scope of the work or to find a way to work more efficiently while still maintaining a sustainable pace." The Scrum Primer. http://scrumtraininginstitute.com/home/stream_download/scrumprimer

Here's a similar chart and explanation from MountainGoatSoftware.com:



The team does its best to pull the right amount of work into the sprint but sometimes too much or too little work is pulled in during the sprint planning meeting In this case the team needs to add or remove tasks. In the above sprint burndown chart you can see that the team had pulled in too much work initially and still had nearly 600 hours to go on 5/16/02. In this case the product owner was consulted and it was agreed to remove some work from the sprint, which resulted in the big drop on the chart between 5/16/02 (619 hours) and 5/17/02. From there the team made good consistent progress and finished the sprint successfully
Question #27
Question: What is the primary purpose of the sprint retrospective?
The correct answer was:

To uncover ways to work better as a team

To find the person responsible for the sprint's failure

To give the scrummaster the opportunity to hold employee reviews

To give the product owner an opportunity to complain about the team's lack of progress
Correct Answer Explanation:
From MountainGoatSoftware.com: "The meeting is an opportunity to reflect on the sprint that is ending and identify opportunities to improve in the new sprint."

From Scrum Primer: "The Sprint Retrospective, which follows the Review, involves inspect and adapt regarding the process.... It’s an opportunity for the Team to discuss what’s working and what’s not working, and agree on changes to try."

From Do Better Scrum: "The retrospective is focused on the process—the way in which the Scrum team is working together, including their technical skills and the software development practices and tools they are using."
Question #28
Question: What is the primary purpose of the sprint review?
The correct answer was:

To review the completed stories and look for opportunities to improve the product

To demo the system for upper management

To prove that the team worked hard during the sprint

To find out who failed to complete his or her tasks
Correct Answer Explanation:
Do Better Scrum: "Its primary purpose is to inspect what the team has delivered and gather feedback from the attendees to adapt the plan for the succeeding sprint.... The focus of the sprint review is the product the team is building."

Scrum Primer: "The Sprint Review is an inspect and adapt activity for the product. It is a time for the product owner to learn what is going on with the product and with the team (that is, a review of the sprint); and for the team to learn what is going on with the product owner and the market."

MountainGoatSoftware: "The goal of this meeting is to get feedback from the product owner or any users or other stakeholders who have been invited to the review. This feedback may result in changes to the freshly delivered functionality. But it may just as likely result in revising or adding items to the product backlog."
Question #29
Question: What is the primary purpose of the sprint burndown chart?
The correct answer was:

To show, at a glance, how many hours have been spent during the sprint

To show, at a glance, who is behind in completing their tasks

To show, at a glance, the amount of work remaining during a sprint

To show, at a glance, whether team members are working at full capacity
Correct Answer Explanation:
From Scrum Primer: "This graph shows, each day, a new estimate of how much work (measured in person hours) remains until the Team’s tasks are finished."

From MountainGoatSoftware.com: "Burndown charts show the amount of work remaining either in a sprint or a release."
Question #30
Question: Which 3 of the following questions is each team member asked to answer at the daily scrum?
The correct answer was:

What did i do yesterday?

What will i do today?

What impediments are in my way?

Who didn't pull his weight yesterday?

Is the scrummaster doing a good job?
Correct Answer Explanation:
From MountainGoatSoftware.com, "On each day of the sprint, a daily scrum meeting is attended by all team members, including the ScrumMaster and the product owner. This meeting is timeboxed to no more than fifteen minutes. During that time, team members share what they worked on the prior day, will work on today, and identify any impediments to progress."
Question #31
Question: True or False? Agile is all about response to change. That's why during a sprint, if the product owner thinks of a new feature, he can add it to the sprint backlog.

Hint: The key phrase in this question is "during a sprint."
The correct answer was:

True

False
Correct Answer Explanation:
The sprint backlog contains only the work the team has committed to completing in the current sprint. During a sprint, the product owner should add new product backlog items only to the product backlog.

"One of the pillars of Scrum is that once the team makes its commitment, any additions or changes must be deferred until the next sprint." Scrum Primer. http://scrumtraininginstitute.com/home/stream_download/scrumprimer
Question #32
Question: True or False? Agile is all about responding quickly to change. That's why a product owner can add or subtract features from the product backlog or even change their priority at any time.

Hint: Consider the difference between a product backlog and a sprint backlog.
The correct answer was:

True

False
Correct Answer Explanation:
"The Product Backlog is continuously updated by the Product Owner to reflect changes in the needs of the customer, new ideas or insights, moves by the competition, technical hurdles that appear, and so forth." --Scrum Primer. http://scrumtraininginstitute.com/home/stream_download/scrumprimer
Question #33
Question: True or false? The ScrumMaster is the manager of the Scrum team. All team members report to the ScrumMaster.
The correct answer was:

True

False
Correct Answer Explanation:
"The ScrumMaster is not the manager of the team or a project manager; instead, the ScrumMaster serves the team, protects them from outside interference, and educates and guides the product owner and the team in the skillful use of Scrum." --Scrum Primer. http://scrumtraininginstitute.com/home/stream_download/scrumprimer
Question #34
Question: True or False? The product owner must be present during at least the first half of sprint planning.
The correct answer was:

True

False
Correct Answer Explanation:
From Do Better Scrum: "The product owner must be present during this meeting to lead the team in the right direction and to answer questions—and they will have many."

From Scrum Primer: "In Sprint Planning Part One, the Product Owner and Team (with facilitation from the ScrumMaster) review the high-priority items in the Product Backlog that the Product Owner is interested in implementing this Sprint."

Tuesday, March 27, 2012

RTLOG File - Main Codes

Main Code

Main Code Descr.

Codes

Codes Descriptions

TRAT

Transaction Types.

OPEN

opening of the cashier

LOAN

loan to the cashier

NOSALE

no sales transactions.

SALE

store sales

RETURN

store customers returns

EEXCH

exchange of items which the total value of the transactions is equal to 0.

VOID

total transaction cancelled

PVOID

transaction to cancel totally a previous transaction

PULL

pulls of cash from the register

PAIDIN

receiving some tenders value for customer services

PAIDOU

pulls of tender value from register for paying store expenses

CLOSE

closing of the cashier

DCLOSE

closing of the day

TOTAL

totals that are defined as coming from POS system to ReSA, like total store sales value or other totals, like total tenders roll-up for each tender.

TRAS

Sub-Transaction Types.

EMP

Employee.

DRIVEO

Fuel Drive Off.

MV

Merchandise Vendor Payout.

EV

Expense Vendor Payout.

EXCH

Exchange in Item Sale/Return transaction.

REAC

Reason Codes.

ACCT

Payment on Account

INC

Incident Payout

NSF

NSF Check Payment

PAYRL

Payroll Payout

LOTWIN

Lottery Winnings

SIGN

Quantity or Values Sign.

P

Positive

N

Negative

CIDT

Customer ID Types.

PHONE

Phone

DL

Drivers License

BNKACT

Bank Account

SSN

Social Security

HSCARD

House Card

VICARD

Visa Card

MCCARD

Mastercard

AXCARD

American Express Card

DSCARD

Discover Card

DCCARD

Diners Club Card

ZIP

Zip Code

IDCODE

Store-defined id code

SACA

Sales Audit Customer Attibutes.

SAGC

Sales Audit Gender Codes

SAIN

Sales Audit Income Codes

SARD

Sales Audit Retailer Defined Codes

SASI

Sales Audit Item Status

V

Voided

S

Sale

R

Return

O

Other

SAIT

Sales Audit Item Types.

ITEM

Item

REF

Reference Item

GCN

Voucher Number

NMITEM

Non Merchandise Item

UPCT

Item Number Type.

ITEM

Retek Item Number

UPC-A

UPC-A

UPC-AS

UPC-A with Supplement

UPC-E

UPC-E

UPC-ES

UPC-E with Supplement

EAN8

EAN8

EAN13

EAN13

EAN13S

EAN13 with Supplement

ISBN

ISBN

NDC

NDC/NHRIC - National Drug Code

PLU

PLU

VPLU

Variable Weight PLU

SSCC

SSCC Shipper Carton

UCC14

SCC-14

ORRC

Override Reason.

D

Damaged Goods

T

Incorrect Tag

S

Incorrect Signage

YSNO

Yes or No.

Y

Yes

N

No

SARR

Sales Audit Return Reason Codes.

01

Damaged

02

Defective

PRMT

RMS Promotion Types.

1000

Mix and Match

1001

Threshold

1002

Multi-Units

1003

Single Item and @MH4 Level

1004

In Store Discount

1005

Employee Discount

1006

Off Retail

1009

Promotions

SADT

Sales Audit Discount Types.

DMGD

Damaged Goods

CUST

Customer Accommodation

SCOUP

Store Coupon

TAXC

Taxes Codes.

STATE

State Tax

CITY

City Tax

TENT

Tender Type Groups.

CASH

Cash

CHECK

Personal Check

CCARD

Credit Card

VOUCH

Voucher (gift cert. or credit)

COUPON

Coupon

MORDER

Money Order

DCARD

Debit Card

DRIVEO

Drive Off

SOCASS

Social Assistance

CASH

Tender Type IDs (POS_Tender_Type_Head table)

1000

Cash

CASH

2020

Traveler Check

CCARD

3000

Visa

CCARD

3010

Mastercard

CCARD

3020

American Express

CCARD

3030

Discover

CCARD

3040

Diners Club - N. America

CCARD

3045

Diners Club - Non-N. America

CCARD

3049

Diners Club - Ancillary

CCARD

3050

WEX

CCARD

3060

Voyageur

CCARD

3070

Unocal

CCARD

3080

enRoute

CCARD

3090

Japanese Credit Bureau

CCARD

3100

Australian Bank Card

CCARD

3110

Carte Blanche - N. America

CCARD

3115

Carte Blanche - Non-N. America

CCARD

3120

House Card

CHECK

2000

Personal Check

CHECK

2010

Cashier Check

CHECK

2030

Electronic Check

COUPON

5000

Manufacturers Coupons

DCARD

8000

Interac

DRIVEO

9000

Fuel Drive Off

MORDER

6000

Money Orders

SOCASS

7000

Food Stamps

SOCASS

7010

Electronic Benefits System -EBS

VOUCH

4000

Credit Voucher

VOUCH

4010

Manual Credit

VOUCH

4020

Manual Imprint

VOUCH

4030

Gift Certificate

VOUCH

4040

Credit Due

CCAS

Credit Card Authorization Source.

E

Electronic

M

Manual

CCVF

Credit Card Verification.

S

Signature Verified

C

Card Shown

P

PIN Entered

M

Mail Order/Phone

E

e-commerce

CCEM

Credit Card Entry Mode.

T

Terminal Used

M1R

Magnetic Strip One Read

M1T

Magnetic Strip One Transmitted

M2R

Magnetic Strip Two Read

M2T

Magnetic Strip Two Transmitted

CCSC

Credit Card Special Conditions.

M

Mail

P

Phone

E

Electronic-secured

N

Electronic-non-secured