CONSIGNMENT RETURN - TYPE YBKR

Dear Expert
I am a fresher to SAP JOB and my customer is having issue mentioned below.  Can anyone help me to analyse the issue and solve the error.
Customer wrote to me:
I had to do a customer credit against a YBKB Consignment Fill up order,
but instead of just doing the YBKR Return which credits the customer and
returns the product to stock for the Return PO for the Vendor credit, I
also incorrectly done a YBKA Consignment Pickup? I think I just need to
Delete the Consignment Pickup order (YBKA), delivery document, and the
goods issue material document. This would just leave the correct Return
Type YBKR active which credited the customer. Do I have this correct?
If so, I can delete the Consignment Pickup order (YBKA) and the Returns
Delivery Document, but who will have to delete the Goods Issue Material
Document against this order? I have never done this???
Consignment Pickup Order# 60000184
Returns Delivery# 84001007
GI Consignment Return Delivery Document# 4900014847
Thanks and Regards
M.Dheerendar Jain

I think I just need to
Delete the Consignment Pickup order (YBKA),
delivery document, and the
goods issue material document.
FOR the Consignment Pickup -
1) Either, You can reverse the PGR in VL09 and then delete the delivery and the CP order
2) or create a CF order, for the amount in the CP order. So that the consignment warehouse again has the correct stock.

Similar Messages

  • RLFC Excise transaction type during consignment return

    Hi All,
    During consignment return for adjusting JV can we use RLFC transaction type instead of OTHR.
    So far we used only OTHR. What are all the impacts if we move to RLFC all of a sudden.
    Please explain.
    Regards
    Raja Durai

    Dear Friend,
    As per the SAP new package ETT RLFC has been introduced for Excise sales return. New tab   "Return sales Excise" available in J1IH for post Return excise invoice automatically. .
    We added ETT RLFC in table J_1ITRAN and did configuration for account determination for excise, this is helped us to post excise invoice for Sales return.
    Please refer SAP Note: 1907900 - Error 8I-402 for return sales transaction(RLFC)- J1IH
    Regards,
    Pradeep

  • Consignment returns to vendor-urgent

    Hi,
    what is the process flow for consignment returns to vendor and which mvt type does system will prpose if i can process this returns through returns po??

    Hi Kiran,
    It depends on client process.
    I understand unless we inward to our own stock we can't decide whether the material is good or not (as it is available at the vendor stores) and make a decision to return to the vendor.
    But it is also not necessary that you have to inward the consignment material to your own stock then you decide whether the material is proper or not
    As Some Companies (Automotive industries) will visit the vendor site first to check the stock before using to their own stock.
    rgds
    Chidanand

  • Vendor consignment return has no delivery shown in VL10B

    Hi Friends,
    Here is my issue,
    Created a vendor consignment return PO 45-xx(Me21n, item Cat. K, tigged return indicator, configure error msg ME640 to W)
    Then I go to  VL10B, can not find my return  45-xx
    My question is how to configue to enable return PO shown on Vl10b
    Your advice will be deeply appreciated.
    Thanks,
    L

    Do you have "Shipping" data tab on your PO at item details level?
    I believe you have completed below steps
    1. maintain supplying plant as return plant
    IMG-Material Management-Purchasing-Purchase order- returns order-returns to vendor
    Here, make sure you've maintained Puurchasing Doc type as "NB" and Del,Type f. Retur as "RL"
    2. add customer master data representing "return vendor"
    3, checked "Return vendor" on the Purchasing segment for vendor
    4 Assign vendor on customer master (under vendor master general data's control section)

  • Vendor consignment return and vailability check

    Dear friends.
    We created a vendor consignment PO(K in item category and tick return box) and realized PO was committed from unrestricted stock instead of consignment stock,which cause no availability check in sales order due to insufficient available stock. My question is how to configure to make this type of PO to be committed from only consignment stock.
    Thanks in advance,
    Linda

    When creating a consignment return PO item I got error message ME640 (see note 334331 which implements this).
    I followed the instruction described the error message. It (ME640) has been set to warning - there's no other setting is needed.
    After that I was able to save the PO and post the goods issue in MIGO (A01-R01).
    The GI consumed the stock:
    - from consignment stock segment
    - unrestricted stock type
    Please note that within consignment stock segment the susual stock types (unrestricted, QI, blocked) exist.
    It's strange that it didn't use special stock segment "K" in your case. Is this true? How did you do the process?
    @Kailas Ugale
    Your message will be deleted because you answered only by copying link. Please note that link farming is not welcomed on the forum.
    Please use the forum properly.
    @Venkat0009
    Your messgae will be rejected too because you copy pasted the text as your own answer w/o referring to the source.
    Please use the forum properly.
    Edited by: Csaba Szommer on Oct 18, 2011 9:31 PM

  • About  Consignment Return

    Dear All,
          Make-to-order stock
    Use the Consignment Issue(Mov type 631) to the customer consignment stock 100 ,and |Consignment Return(Mov type 632) 50, Availability Checking(rule:AE-SD order; make-to-order stock) Confirmed Quantity is 0 ,how is this going on ? Where to be configured ?
    thinks!
    Andy.
    Edited by: Andy Yao on Oct 16, 2010 6:18 PM

    I am not sure whether for consignment fill up process, we can go with MTO process due to the fact that the manufacturer have to produce all items and despatch.  This being the case, why you have gone for consignment process where the movement type would be 631W. Once the fillup delivery is made in MTS scenario, automatically, the stock from unrestricted would go to "Customer consignment" and if you see in MB51, this would be with 631W
    thanks
    G. Lakshmipathi

  • Intercompany STO Consignment Return

    Hi gurus,
    I am giving support to a company with Intercompany consigment process. The process works but I am meeting a problem with the return process . If a click on the flag return item, the shipping tab of the position dissppears so I cannot create the delivery. Please if anyone knows let me know!!
    Some details:
    Order type NB,
    Stock type K
    I have customized the:
           delivery determination
           returns from plant to plant
    All master data is correct cause the process is working (only the return are not working)
    Thanks in advance!
    Mikel

    I have never heart of an Intercompany STO Consignment  process.
    However, you usually create a consignment fillup to get the material to your customer (still owned by you)
    when the customer uses this material, you create a consignment issue.
    if any unused material shall be returned, then this is not a return, it is called consignment pickup, this process starts as well in SD.
    A consignment return would only ocur after a goods issue was done, a return will then return the material into consignment stock at customer location.
    About which return are you talking? the pickup or the real return?

  • Consignment Return Process

    Hi Experts,
    While executing consignment return process I noticed that the respective items are directed to unrestricted location....my reservation is when I am placing a consignment return order with order reason as demage it should either get placed in restricted stock or inspection stock...how actually it works?.....either we should manually direct the stock to restricted or automatically it should happen?.......634 vis the movement type its showing.........assistance required.....Thanks in advance

    See, all the sch line suggested are 'Z' Sch line cat in VOV6.
    Z are user created which differentiate it from Standard, that means you have to create these 3 sch line and you can take reference of standard sch line for this, say, DN - Consignment Returns.
    Copy DN and to create Z Sch line  ZS2 & ZSC3.
    maintain movement type in those sch line, say,
    ZS2 - 655
    ZS3 - 651
    Determine the same in Tcode VOV5
    Against I Cat KRN maintain
    Item category KRN
    MRP Type
    PropSchdLneCat. D0
    ManSchedLineCat. ZS2
    ManSchedLineCat. ZS3
    Now, at item level in the sale order by default the sch line will be DN. So, movement of goods to Quality stock  manually change your sch line from DN to ZS2 or ZS3 for movement of goods to restricted return stock.
    Hope this time its clear to you.
    Thanks & Regards
    JP

  • Consignment Return Billing Error................................

    Hi Folks,
    When i want to create a billing for a Consignment return order the system shows the processing status incomplete and in log the Error message is the billing type could not be determined...
    Can Anyone of you help me in solving this issue.........
    Thanks,
    Madhan Raj.C

    Dear,
       Kindly check in which billing type you create billing ??
    Sandip

  • SD: Consignment Return.

    H experts,
    can you explain the steps for customizing  (especially the copy control) a Consignment Return.
    I create return order, consignment return delivery and a consignment return invoice (from RE)
    But now I have a problem when I'm trying to generate a billing document in VF01. What could be the problems?
    please help
    thanks in advance

    1. Consignment fill up:
    Sales document type is KB
    Item category KBN
    schedule line category 1
    In this step, you are not invoicing the customer. document flow is sales order -
    delivery item category. It will not be relevant for billing and pricing because you are not charging money for these goods in this step.
    In schedule line category, you will set movement type 631 & set for availability check and TOR.
    2. Consignment Issue.
    Once the customer informed you that he used all the goods or partial goods then you will create consignment issue for used goods.
    Sales document: KE
    Item category: KEN
    schedule line category: C0 or C1
    Here you are invoicing the customer(because he used the goods). you are assigning the delivery document and billing document to the sales document.
    In item category, you are setting relevant for billing, pricing, special stock.
    In schedule line category, your setting is 633 movement type, relevant for availability check & TOR.
    3. Consignment Return:
    Customer found that some goods are damaged or he not able to sold the goods he want to send it back. that you are creating this document.
    Sales document type: KR
    Item category: KRN
    You will assign delivery document and billing to sales document. you will create return order, return delivery, return billing.
    Your setting item category relevant for billing, returns, pricing, special stock.
    Your setting schedule line item category: 634 movement type, NO availability NO TOR.
    Copy Control: Sales Order to Delivery (KR --> LR): VTLA
    It is recommended any other combination is being used, copy the same as (KR --> LR).
    Copy Control: Sales Order to Billing (KR --> G2): VTFA
    It is recommended any other combination is being used, copy the same as (KR --> G2).
    4. Consignment Pick up:
    Even if you create the consignment return the goods are not come to direct to your plant. For that you need to create consignment pick up. here the owner ship is not changing so you do not need to create billing.
    Assign return delivery to sales document type.
    Sales document: KA
    Item category: KAN
    Regards,
    Rajesh Banka
    Reward points if helpful
    Edited by: Rajesh Banka on Apr 8, 2008 12:40 PM

  • Multiple Return Types

    haven't been around in a while, so I thought I'd stir up some comments with a suggestion for a new feature in Java, which I'm sure has been suggested at some point, but I can't remember seeing it talked about, so here goes:
    Multiple Return Types:
    public String, int getStateInfo(String abbrev) {
       if("nj".equalsIgnoreCase(abbrev)) {
          return "New Jersey", 11408042;
       // ... and other states...
       return null, -1;
    String name, int population = getStateInfo("nj");
    System.out.println("The population of " + name + " is " + population + ".");Yes yes, I know. Create a StateInfo object with the fields needed. Still, I think that could be interesting.

    apart from it getting ugly with more than twoparameters
    What? How is this ugly? ;-)
    public String, int, String, Color, String, String
    getStateInfo(String abbrev) {
    return name, population, stateFlower, stateColor,
    or, stateAnimal, governorsName;
    there no indication on what the return valuesrepresent.
    Well, I guees the API docs would have to speak for
    themselves. Or better method naming... In that
    sense, it's no different then now. I could write a
    method "getStateName()" and return totally different.
    public String, int getStateNameAndPopulation(String
    abbrev) {...
    I used to like "tuples" when I studied The Tom Programming Language (that's how he calls them), as every CS student is a bit of a "featurist"... Now that I came to develop 40 hours a week and to love Java's simple and powerful expressiveness, I tend to find such constructs overly ugly to be avoided as possible... a matter of personal taste, too, I suppose...

  • How can I get rid of a type generated by the Data/Services return type wizard?

    Hi All,
    I have a JSON service that returns an object called "error".  The Data/Services "Configure Return Type" wizard automatically turned this into a class "Error".
    However, this caused over a hundred errors to show up inside the generated classes, "Call to a possibly undefined method Error."  That's because of lines like this:
    throw new Error(propertyName + " is not a data property of entity Agreements"); 
    It's trying to throw a regular "Error" object, but now that there's an "Error" class in the same package, that is taking precedence--and that Error object doesn't have a constructor with a single parameter.  At least, that's what I think is going on.
    I tried to fix it by deleting _ErrorEntityMetadata.as, _Super_Error.as, and Error.as from the valueObjects package.  I then opened the FML file and deleted the definition for the entity "Error" and every reference to the Error entity (class) in my FML file.
    I then changed my JSON service so that it returns an object called "serviceError" instead of just "error".
    But, whenever I re-run the "Configure Return Type" wizard, it regenerates the Error class, even though I've deleted it from everywhere I can find it.  That breaks my project completely!  How can I end this and get Flash Builder to *stop* generating this type!
    In the "Configure Return Type" wizard I very carefully inspected the type of every bit of data coming back to make sure none of them show up as type "Error."  And they don't (as expected, since I changed the object's name to serviceError--now the type of that object is ServiceError.
      -Josh

    I think you are facing this known issue https://bugs.adobe.com/jira/browse/FB-29770
    Please vote it.
    Thanks for the link--I just voted for it.
    To avoid this, in the last page of "Configure Return Type", edit return type name to something else (You can also edit subnodes's name too in the wizard).
    Actually, that's exactly what I saw doing; I apologize if that wasn't clear in my post.
    I closed and restarted Flash Builder, and once I did that Flash Builder stopped generating the Error class.  My guess is that the FML file, even though I had updated it (by deleting all references to the Error class), was cached in some fashion by Flash Builder, and restarting Flash Builder forced it to reread the FML file?
    Additional point of clarification: my understanding is that the FML file stores all the metadata about the services that Flash Builder has been able to figure out so far, and when you run the Configure Return Type wizard, it will regenerate *every* type in the FML file, even if that type is not mentioned anywhere in the particular return value that you are working with.
    Edited to provide additional thoughts on FML file.

  • Problem when calling a return type BOOLEAN SQL Function in a package

    Hi All,
    I am having problem when trying to call a SQL function in a package with return type BOOLEAN
    The SQL function signature is as follows
    CREATE OR REPLACE PACKAGE RMSOWNER.ORDER_ATTRIB_SQL ****
    FUNCTION GET_PO_TYPE_DESC(O_error_message IN OUT VARCHAR2,
    I_PO_TYPE       IN     VARCHAR2,
    O_PO_TYPE_DESC  IN OUT VARCHAR2)
    RETURN BOOLEAN;
    Following is my java code
    +CallableStatement cs3 = conn.prepareCall("{?=call ORDER_ATTRIB_SQL.GET_PO_TYPE_DESC(?,?,?)}");+
    +cs3.registerOutParameter(1, java.sql.Types.BOOLEAN);+
    +cs3.registerOutParameter(2, java.sql.Types.VARCHAR);+
    +cs3.registerOutParameter(4, java.sql.Types.VARCHAR);+
    +cs3.setString(2, "");+
    +cs3.setString(3, "ST");+
    +cs3.setString(4, "");+
    +ResultSet rs3 = cs3.executeQuery();+
    I get the following exception, i tried changing the sql type(registerOutParameter) from boolean to bit but i still getting this exception.
    But when i call any other functions with return type other than boolean they work perfectly fine.
    Please can anyone help me fix this issue, i am not sure if its anything to do with vendor JDBC classes?
    +java.sql.SQLException: ORA-06550: line 1, column 13:+
    +PLS-00382: expression is of wrong type+
    +ORA-06550: line 1, column 7:+
    +PL/SQL: Statement ignored+
    +     at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)+
    +     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)+
    +     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)+
    +     at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)+
    +     at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:215)+
    +     at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:954)+
    +     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)+
    +     at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)+
    +     at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3422)+
    +     at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4394)+
    #####

    Hello People!
    There is another workaround!!
    See the example below:
    private String callBooleanAPi(String tableName,String apikey,String dtInicio,String dtFim,String comando) throws SQLException {
                   CallableStatement cs = null;
                   String call = "";
                   String retorno = null;
                   try {
                        if(comando.equalsIgnoreCase("INSERT")){
                             call = "declare x BOOLEAN; y varchar2(2);begin x :=PKG.INSERT(?,?,?,?,?); if x then y := 'S'; else y :='N'; end if; ? := y;end;";
                        } else if(comando.equalsIgnoreCase("UPDATE")){
                             call = "declare x BOOLEAN; y varchar2(2);begin x := PKG.UPDATE(?,?,?,?,?); if x then y := 'S'; else y :='N'; end if; ? := y;end;";
                        } else if(comando.equalsIgnoreCase("DELETE")){
                             call = "declare x BOOLEAN; y varchar2(2);begin x := PKG.DELETE(?,?,?,?,?); if x then y := 'S'; else y :='N'; end if; ? := y;end;";
                        cs = conn.prepareCall(call);
                        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
                        SimpleDateFormat sdfToSqlDate = new SimpleDateFormat("yyyy-MM-dd");
                        java.util.Date dataInicialVigencia =null;
                        java.util.Date dataFinalVigencia = null;
                        Date dtInicialFormatada =null;
                        Date dtFinalFormatada = null;
                        if(dtInicio != null && !dtInicio.equals("")){
                             dataInicialVigencia = sdf.parse(dtInicio);
                             dtInicio =sdfToSqlDate.format(dataInicialVigencia);
                             dtInicialFormatada = Date.valueOf(dtInicio);
                        if(dtFim != null && !dtFim.equals("")){
                             dataFinalVigencia = sdf.parse(dtFim);
                             dtFim =sdfToSqlDate.format(dataFinalVigencia);
                             dtFinalFormatada = Date.valueOf(dtFim);
                        cs.setString(1, tableName);
    cs.setString(2, apikey);
    cs.setDate(3, dtInicialFormatada );
    cs.setDate(4, dtFinalFormatada );
    cs.registerOutParameter(5, java.sql.Types.VARCHAR);
    cs.registerOutParameter(6, java.sql.Types.VARCHAR );
    cs.execute();
                        retorno = cs.getString(6);
                        System.out.println( cs.getString(5));
                   } catch(SQLException e){
                   throw new SQLException("An SQL error ocurred while calling the API COR_VIGENCIA: " + e);
                   } catch(Exception e){
                   Debug.logger.error( "Error calculating order: " + id, e );
                   } finally {
                   if (cs != null) {
                   cs.close();
                   cs = null;
                   return retorno;
    As you can see the CallableStatement class acepts PL/SQl blocks.
    Best Regards.

  • Should Collections be used as return types across threads?

    I am wondering when, if ever, it is appropriate to use a Collection as the return type of a method in a multi-threaded environment. Here is our situation:
    We have four classes -- Widget, WidgetManager, ClientA, and ClientB. ClientA and ClientB are running in different Threads from each other and from the WidgetManager.
    The WidgetManager class that uses a Collection of Widgets internally, and passes the Collection (or an Iterator over it) out as a return value of a method to ClientA, which is running in another thread. ClientA would start to go through it using next() and hasNext() of the Iterator. If the WidgetManager were to get a request from ClientB running in another thread to eliminate a Widget, it would attempt to remove it from the Collection. If ClientA were still looping through the Iterator, this would throw an IllegalStateException b/c the system would be in an inconsistent state. The Iterator given to the ClientA is directly linked to the actual Collection in the WidgetManager (am I right so far?).
    In my opinion, in most cases we don't want to synchronize Collections. In the example above, if we had passed out a synchronized Collection, then the WidgetManager couldn't touch the collection while the client was looping through the Iterator. If the client got hung up while looping, then the WidgetManager would be hung up. In this case, I think that it will be better to use the toArray() method of Collection to just dump out the contents to a plain array of Objects. Actually, the WidgetManager could convert this array of Objects to an array of Widgets before passing it out, which would give us the type checking that we don't get with Containers.
    The condition where you would want to use a synchronized Collection would be when you actually want the client to do some writing or removing from the Collection. I would expect this to be pretty rare since you usually dont want to give clients access to an interal member (the Collection) of a class.
    I think that it is also possible to have read-only Collections, but I think (don't know for sure) that you would still have the same IllegalStateException or synchronization probelms.
    Can someone point out the errors in my thinking? Or should you generally only use Collections as internal members in a multi-threaded environment, and use toArray() whenever you want to pass the Collection's data outside of the class?
    Thanks for any help.
    Keith

    I haven't tested what happens when you synchronize the
    Collection, but I think that you are right. But this
    causes the problem that I mentioned in the first post.
    That is, what happens if your client STARTS running
    through the Iterator, and then stops or gets hung up
    for some reason? I assume that you're still blocked.
    And it's pretty important to me in this case to not
    t be blocked -- WidgetManager is the highest level
    class in the system.
    I'd like to know if anyone has tested this.
    The Iterator implementations used in java.util do not use any synchronization by itself, (which is what you would expect since synchronization over multiple method call will involve much more complications and slower performance) . With iterator, you have to provide the necessary synchronization yourself to maintain thread-safety like this
    Iterator itr = get Iterator from collectionInstance ;
    synchronized(collectionInstance) {
    while(itr.hasNext())
    process itr.next() ...
    As long as your client code gracefully exits the synchronized block on a stop( or hangup, given that it is detected and handled fast enough), it will not be a problem.
    Also, I'd like an example of when you WOULD want to
    return a Collection. I'm specifically interested in
    when you would want to return one in a multi-threaded
    environment, but I'm beginning to wonder when you
    would EVER want to return one from a method.
    Collections are great for internal uses, but you lose
    type-checking and you expose the internals of your
    class to modification when you use them as return
    types. And if you're returning a read-only
    Collection, you might as well return an array, right?Using a read-only proxy will be much faster and space-efficient than toArray().

  • Two methods with same name but different return type?

    Can I have two methods with same name but different return type in Java? I used to do this in C++ (method overloading or function overloading)
    Here is my code:
    import java.io.*;
    public class Test{
    public static void main(String ar[]){
    try{          
    //I give an invalid file name to throw IO error.
    File file = new File("c:/invalid file name becasue of spaces");
    FileWriter writer = new FileWriter(file ,true);
    writer.write("Test");
    writer.close();     
    } catch (IOException IOe){
         System.out.println("Failure");
    //call first method - displays stack trace on screen
         showerr(NPe);
    //call second method - returns stack trace as string
            String msg = showerr(NPe);
            System.out.println(msg);
    } // end of main
    public static void showerr(Exception e){
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
         e.printStackTrace(pw);
         try{
         pw.close();
         sw.close();
         catch (IOException IOe){
         IOe.printStackTrace();     
         String stackTrace = sw.toString();
         System.out.println("Null Ptr\n" +  stackTrace );
    }//end of first showerr
    public static String showerr(Exception e){
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
         e.printStackTrace(pw);
         try{
         pw.close();
         sw.close();
         catch (IOException IOe){
         IOe.printStackTrace();     
         return sw.toString();
    }//end of second showerr
    } // end of class
    [\code]

    Overloading is when you have multiple methods that have the same name and the same return type but take different parameters. See example
    public class Overloader {
         public String buildError(Exception e){
              java.util.Date now = new java.util.Date() ;
              java.text.DateFormat format = java.text.DateFormat.getInstance() ;
              StringBuffer buffer = new StringBuffer() ;
              buffer.append(format.format(now))
                   .append( " : " )
                   .append( e.getClass().getName() )
                   .append( " : " )
                   .append( e.getMessage() ) ;
              return buffer.toString() ;
         public String buildError(String msg){
              java.util.Date now = new java.util.Date() ;
              java.text.DateFormat format = java.text.DateFormat.getInstance() ;
              StringBuffer buffer = new StringBuffer() ;
              buffer.append(format.format(now))
                   .append( " : " )
                   .append( msg ) ;
              return buffer.toString() ;
         public String buildErrors(int errCount){
              java.util.Date now = new java.util.Date() ;
              java.text.DateFormat format = java.text.DateFormat.getInstance() ;
              StringBuffer buffer = new StringBuffer() ;
              buffer.append(format.format(now))
                   .append( " : " )
                   .append( "There have been " )
                   .append( errCount )
                   .append( " errors encountered.")  ;
              return buffer.toString() ;
    }Make sense ???
    Regards,

Maybe you are looking for