Document Structure Solution

Hi all
I'm reading about Document Structure and I have a question.
I wanna create a Structure (1) for user and they only base on this structure to create new Document Structure themself
I mean Structure (1) is something like the process and user just base on this...
Can I create this ? And where can I create this in DMS.
For example:
I have a Structure (1) [not Document Structure]
A (1)
|
|____|B (2)
|____|C (2)
|____|_________D (3)
A,B,C,D are Document type
And when user create Document DIR they have to base on this Structure (1)
I try to make my problem clearly with everyone... But so hard to get it. If you don't understand me you can ask for more information.
Regard
An NLP
Edited by: An NLP on Mar 18, 2010 3:16 AM
Edited by: An NLP on Mar 18, 2010 3:17 AM
Edited by: An NLP on Mar 18, 2010 3:18 AM

Hi Amaresh Makal 
Thanks for your caring my problem. I use another example and hope you can understand what I want.
A,B,C,D are Document Types.
And have a rule: A must have B,C,D
I mean
When users create a document in Document Type A, they have to create the documents in other Document Types: B,C,D.
And document in A is only released when the documents in B,C,D are released.
I want a structure (like Document Structure) for Document Type and it is used for all of documents in that Document Type.You should notice that I'm talking about Document Type not Document
Maybe, It's impossible to do because I can't find out anything to link the Document Types in DMS.
Finally, If it cannot be done and do you think SAP DMS need a system like that ?
Regards
An NLP

Similar Messages

  • How to maintain a common document in solution manager

    Gurus ,
    we are in the process of configuring service desk . One major type of support message we receive is user creation /modification .
    currently we maintain these details in an common  excel sheet .  if a new  requirement is made they take the latest modified excel sheet and mark the changes in them .
    But now what we need in , we need to maintain this document is solution manager server .
    and the users can access the document , make changes , save it and upload it back to the server .
    any of you have any suggestions on implementing the same

    Hello Susin,
    User Creation / Deletion / Modification is a Change in the system. It cannot be handled via a standard central document like a Excel on a datshare.
    Solution Manager is not a content repository to be used for storing such documents. There is no way that you can acheive it as a standard process.
    Probably what you can do is as follows :
    - Create a table structure in Solution Manager and assign it colums as needed.
    - Then write a ABAP Code to access and maintain this table Structure.
    - Assign a transaction code to the ABAP Code so that it can be accessed by different users.
    I hope that the reply helps.
    Regards
    Amit

  • DMS Document structure

    Hi Friends,
    We are implementing DMS in our organization. Our file storing system is explained below.
    1st level - Vendor name (like Nyro / Hydraulics / techno )
    2nd level - Project name (like A1 / A2/ A3)
    3rd level - Dept. (like Civil / electric/ admin)
    4th level - Type (like Drawings / docs / memos)
    Can we do thru Document structure or by classification (by creating characteristics / class and attaching to doc. type)
    Which one is better way ? If we use document structure can we authorization for each level objects like in 2nd level one person is authorized for A1 another for A2 like way other levels also.
    Regards,
    Sai Krishna

    Hi Sai,
    mainly you can work with both ways. The creation of a class which enables your users to classify each document info record and then control the permissions with the suitable authorization objects or by a BADI implementation will work.
    Another solution would be to create a document BOM structure in CV11 or with the help of the new browser function in ECC 600 release. For further information on the browser function please see also the following link http://wiki.sdn.sap.com/wiki/display/PLM/NewFunctionalitiesinERP2005.
    Additionally I think that EasyDMS could also be a solution to setup this scenario for your user. In the above SDN WIKI area for DMS you will also find a special content part for EasyDMS too.
    In the release ECC 600 with EA-PLM extenstion you can use the ACL authorization concept to add individual authorizations for
    users to single document info records. This could be useful to allow one user to enter folder A and another to enter only folder B.
    I hope that this information could be useful for you.
    Best regards,
    Christoph

  • Looking for function module to clear document structure

    Hello,
    we want to use Easy DMS for quick check-in of documents. Therefore we need a folder (document structure) to move all new documents in this fixed defined folder. Now we want to clear every night this folder. Does anybody know, which function module could I use?
    Thanks a lot for any support.
    Best regards.
    Markus

    Hello Iring,
    thanks a lot for your answer. BAPI_DOCUMENT_CHANGE2 is a solution, but in this case I have to read everytime all documents. In my case I know already the folder number (document structure) and therefore I'm looking for a function module to give just the folder number to clear, which would be the best way from performance side.
    Anyway thanks a lot for your answer.
    Regards.
    Markus

  • Cross-Organization Document Structure Standards

    Sept. 12, 2007
    Where each of many document providers are sending similar documents to many document receivers, could standard document stuctures be developed for Live Cycle so that document providers that have Live Cycle could use the standard document structures and avoid having to independently develop a structure similar to structures developed by its peers?
    For example, title insurance companies provide documents to loan underwriters at banks, including duplicate policies. Could industry-wide standard documents be developed so that all title companies could use them? The receiving banks would store them in their underwriting file.
    Another example is building property managers (among others) often ask for certification that a tenant's sub-contractor (or supplier) provide certfication that it has liability insurance or that the property manager be added to the liability insurance policy. The liability insurance companies print the certificate and mail it (US Postal Service). Could this postal mail be replaced by a Live Cycle industry-wide certificate structure?
    Milo Fleck

    Hi Sai,
    mainly you can work with both ways. The creation of a class which enables your users to classify each document info record and then control the permissions with the suitable authorization objects or by a BADI implementation will work.
    Another solution would be to create a document BOM structure in CV11 or with the help of the new browser function in ECC 600 release. For further information on the browser function please see also the following link http://wiki.sdn.sap.com/wiki/display/PLM/NewFunctionalitiesinERP2005.
    Additionally I think that EasyDMS could also be a solution to setup this scenario for your user. In the above SDN WIKI area for DMS you will also find a special content part for EasyDMS too.
    In the release ECC 600 with EA-PLM extenstion you can use the ACL authorization concept to add individual authorizations for
    users to single document info records. This could be useful to allow one user to enter folder A and another to enter only folder B.
    I hope that this information could be useful for you.
    Best regards,
    Christoph

  • Correction Invoice and "invalid document structure" problem

    Hello!
    Can anybody explain what properties are obligatory for correction invoices? I'm trying to add() one and it always say -5002: invalid document structure.
    In the CSI1 table I see linenum has to be unique, every baseline is twice. Do I make any stupid mistake? If so - where? What's wrong? Something is ommitted?...
                                                                                    Thanks in advance!
                                                                                    This is a snippet (two loops are unnecessary, I was looking for other ways). I'm trying just to zero the invoice. Should quantity in was lines be negative? It does not matter - everytime -5002...
         @Test
         public void testSAPCorrectionInvoice() throws SBOCOMException {
              ICompany company = sapConnector.getCompany();
              // Integer srcDocEntry = 6457;
              Integer srcDocEntry = 7084;// this one has no batches
              logger.debug("Creating correction to: " + srcDocEntry);
              // source doc
              IDocuments srcDoc = SBOCOMUtil.getDocuments(company,
                        SBOCOMConstants.BoObjectTypes_Document_oInvoices, srcDocEntry);
              logger.debug("srcDoc: " + srcDoc.getDocObjectCode() + ", "
                        + srcDoc.getDocNum());
              IDocuments sapDoc = SBOCOMUtil.newDocuments(company,
                        SBOCOMConstants.BoObjectTypes_Document_oCorrectionInvoice);
              // header:
              sapDoc.setHandWritten(SBOCOMConstants.BoYesNoEnum_tNO);
              sapDoc.setSeries(317);
              sapDoc.setDocType(SBOCOMConstants.BoDocumentTypes_dDocument_Items);
              sapDoc.setCardCode(srcDoc.getCardCode());
              sapDoc.setCardName(srcDoc.getCardName());
              sapDoc.setAddress(srcDoc.getAddress());
              String federalTaxID = srcDoc.getFederalTaxID();
              if (federalTaxID.length() > 0)
                   sapDoc.setFederalTaxID(federalTaxID);
              sapDoc.setDocDate(new Date());
              sapDoc.setDocDueDate(new Date());
              sapDoc.setSalesPersonCode(srcDoc.getSalesPersonCode());
              sapDoc.setDocCurrency(srcDoc.getDocCurrency());
              sapDoc.setPaymentGroupCode(srcDoc.getPaymentGroupCode());
              sapDoc.setTransportationCode(srcDoc.getTransportationCode());
              sapDoc.setContactPersonCode(srcDoc.getContactPersonCode());
              // sapDoc.setDiscountPercent(0.0);
              sapDoc.setComments("zwrot towaru");
              // sapDoc.setDocTotal(0.0);
              sapDoc.setVatDate(srcDoc.getVatDate());
              // items
              IDocument_Lines lines = sapDoc.getLines();
              int lineno = 0;
              IDocument_Lines srcLines = srcDoc.getLines();
              for (int i = 0; i < srcLines.getCount(); i++) {
                   srcLines.setCurrentLine(i);
                   logger.debug("line " + i + ", item: " + srcLines.getItemCode());
                   if (lineno > 0)
                        lines.add();
                   lines.setCurrentLine(lineno++);
                   lines.setItemCode(srcLines.getItemCode());
                   lines.setItemDescription(srcLines.getItemDescription());
                   lines.setWarehouseCode(srcLines.getWarehouseCode());
                   lines.setPrice(srcLines.getPrice());
                   lines.setDiscountPercent(srcLines.getDiscountPercent());
                   lines.setTaxCode(srcLines.getTaxCode());
                   lines.setBaseEntry(srcDocEntry);
                   lines.setBaseType(srcDoc.getDocObjectCode());
                   lines.setBaseLine(i);
                   lines.setVatGroup(srcLines.getVatGroup());
                   lines
                             .setCorrectionInvoiceItem(SBOCOMConstants.BoCorInvItemStatus_ciis_Was);
                   double quantity_was = srcLines.getQuantity();
                   lines.setQuantity(quantity_was);
              for (int i = 0; i < srcLines.getCount(); i++) {
                   srcLines.setCurrentLine(i);
                   logger.debug("line " + i + ", item: " + srcLines.getItemCode());
                   if (lineno > 0)
                        lines.add();
                   lines.setCurrentLine(lineno++);
                   double quantity_diff = 0;
                   lines.setItemCode(srcLines.getItemCode());
                   lines.setWarehouseCode(srcLines.getWarehouseCode());
                   lines.setPrice(srcLines.getPrice());
                   lines.setDiscountPercent(srcLines.getDiscountPercent());
                   lines.setTaxCode(srcLines.getTaxCode());
                   lines.setBaseEntry(srcDocEntry);
                   lines.setBaseType(srcDoc.getDocObjectCode());
                   lines.setBaseLine(i);
                   lines.setVatGroup(srcLines.getVatGroup());
                   lines
                             .setCorrectionInvoiceItem(SBOCOMConstants.BoCorInvItemStatus_ciis_ShouldBe);
                   double quantity_was = srcLines.getQuantity();
                   double quantity_is = 0; //quantity_was - quantity_diff;
                   lines.setQuantity(quantity_is);
              int result = sapDoc.add();
              String info = company.getLastErrorDescription();
              logger.debug("res = " + result + ", info: " + info);
              if (result != 0)
                   throw new EBladKorektyNrPartii(
                             "Cannot create document: " + info);
    Edited by: WodzGalopujacySkleroz on Jul 4, 2011 5:03 PM

    Hello,
      Maybe it's an old thread, and you might have the solution or workaround for this. Nonetheless i try to answer, it might be useful for those trying to find a solution for the same problem.
      The two loops are necessary indeed. DI API expects only this structure: Start with all the "ShouldBe" lines, and follow them with all the "Was" lines. So your code is almost good, but you should have swap the two loops with each other.

  • Appreance of Document structure

    Hi Gurus,
    My client is asking to suppress the document structure appearence which is in the DIR screen, where i could suppress Hierrarchy, CAD interface but iam unable to hide Document structure.
    Kindly get me the solution for this.
    Regards
    Kannan

    Hi Kanna,
    In standard behaviour it's not feasible to hide the document structure. Kindly discuss with abap'r and ask him to hide this with z-program.
    Hope this will help.
    Regards,
    Ravindra

  • How to find the Internal Document Structure Number STLNR from the DIR Key

    Hello:
    Our requirement: When a user moves the Header DIR of a Document BOM to Released Status, we need to check if all the BOM Items in this Document BOM have also been released (in Status Released). If not, we need to give the user an error message informing them which component DIRs need to be released before the system will allow them to release the Header DIR. We can do this by entering the DIR Key of the Header DIR and find out the Internal Document Structure Number (Document BOM Number = STLNR for BOM Category Document Structure STLTY = D) from the available input of the DIR Key DOKARDOKNRDOKTL+DOKVR. Then we need to use the value of STLNR in Table STPO to find the Document BOM Items and check the status of each BOM Item DIR.
    If Table STKO had DIR Key as an input we would have our solution, but alas it does not. Can anyone point us in the right direction by suggesting how to get to STLNR from the DIR Key? Your help would be much appreciated!
    Niraj Pant

    Hi Niraj,
    the STLNR should be contained in structure rc29k. You can also use the DMS BAPI DOCUMENT_GETDETAIL2 with parameter GetStructure or DOCUMENT_GETSTRUCTURE. With these BAPIs you should be able to determine the document structure to an existing document info record. For further information on the mentioned BAPIs please see SAP note <a href="https://service.sap.com/sap/support/notes/766277">766277</a>  which contains a complete documentation on all existing DMS BAPIs.
    Best regards,
    Christoph
    P.S.: Please reward points if this information was usefull.

  • How to upload documents in solution manager

    Hi
    Could anyone please help me how to upload documents in solution manager.
    just like saving the documents in common share folder.Is it possible to do the same
    in solution manager
    Need to create different folders to upload different documents
    Please help me.

    Hi
    folow this guide on smp to create a project etc with screenshots
    https://websmp206.sap-ag.de/~sapdownload/011000358700000478762009E/HowToCreateConfGuide.pdf
    if just want to upload the documents then choose process step on left side and click project doc tab
    upload documents
    hope it helps
    regards
    prakhar

  • I have Dreamweaver CS5.5 and all of a sudden I can't open it says XML parsing fatel error.  Invalid Document Structure  What do I do?  Thanks

    I have Dreamweaver CS5.5 and all of a sudden I can't open it says XML parsing fatel error.  Invalid Document Structure  What do I do?  Thanks

    You need to rename the Configuration folder to Configuration_BU.
    The folder can be found by following this http://www.dmxzone.com/go/16740/clearing-dreamweaver-s-cache/

  • Document structure, Document Hierarchy, Document line Item Bom

    hi, All
    I m confustion in the following,
    1.Document structure,
    2.Document Hierarchy,
    3.In Material bom- DOCUMENT [CS01/2]
    We can enter so many document in the above activities.
    I m confusion with Document structure and Document in material Bom [CS01/2].
    I linked documents in CS02 but Those will shows in DMS but Can't opens. I don't know what is the use creating link in CS02, even though this document not triggers Production order.
    [For document structure needs Change number that i know.]
    But actual use or application i dont know. Could Explain with Exmple.
    Rgds
    Ben

    hi,
    niranjan,
    I created a object link for Bom Item [STPO_DOC] and Bom header  [STKO_DOC] using T-code CS01. This BOM item, BOM Header triggered in DMS. From DMS I am trying to display cs03, But system wonu2019t allow to display.
    And secondly I am trying to link document from DMS to sap object- Material Bom [STOP]
    But system wonu2019t allow.
    How i can establish link materail bom and dms.
    Rgds
    Ben

  • XML document structures must start and end within the same entity

    Hi there,
    I'm working with a client/server application and using SaxParser for reading in xml. I get the SaxParserException: XML document structures must start and end within the same entity. I understand what that means, but it isn't applicable! The xml data being used is well-formed. I checked the well-formedness with Stylus Studio to make sure. Here's the data:
    <?xml version='1.0' encoding='UTF-8'?>
    <vcmessage>
         <vcsource>3</vcsource>
         <processevent>16</processevent>
         <shape>
              <llindex>0</llindex>
              <shapetype>9</shapetype>
              <shapeproperties>
                   <shapelocation>
                        <xcoord>54</xcoord>
                        <ycoord>184</ycoord>
                   </shapelocation>
                   <bounds>
                        <width>24</width>
                        <height>24</height>
                   </bounds>
                   <fgcolor>
                        <fgred>0</fgred>
                        <fggreen>0</fggreen>
                        <fgblue>0</fgblue>
                   </fgcolor>
                   <bgcolor>
                        <bgred>255</bgred>
                        <bggreen>255</bggreen>
                        <bgblue>255</bgblue>
                   </bgcolor>
                   <thickness>1</thickness>
                   <isfilled>false</isfilled>
              </shapeproperties>
         </shape>
    </vcmessage>The parser generally stops around the </bgcolor> tag.
    I'm using Eclypse as my IDE. I'm wondering if there's something wrong with it? Or maybe there's something wrong with the class I'm using for reading in the XML? Followng is the class.
    Please advise,
    Alan
    package vcclient;
    import java.io.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.*;
    public class XMLDocumentReader extends DefaultHandler
      private VCClient client = null;
      private Writer out;
      private String lineEnd =  System.getProperty("line.separator");
      private boolean haveSourceType = false;
      private boolean haveUserName = false;
      private boolean haveMessage = false;
      private boolean haveProcessEvent = false;
      private boolean haveLinkedListIndex = false;
      private boolean haveOpeningShapePropertiesTag = false;
      private boolean haveShapeType = false;
      private boolean haveOpeningShapeLocationTag = false;
      private boolean haveShapeLocation = false;
      private boolean haveOpeningXCoordTag = false;
      private boolean haveOpeningYCoordTag = false;
      private boolean haveOpeningBoundsTag = false;
      private boolean haveBoundsWidth = false;
      private boolean haveBoundsHeight = false;
      private boolean haveOpeningFGColorTag = false;
      private boolean haveOpeningBGColorTag = false;
      private boolean haveOpeningThicknessTag = false;
      private boolean haveOpeningIsFilledTag = false;
      private boolean haveOpeningImageDataTag = false;
      private boolean haveOpeningTextDataTag = false;
      private boolean haveFGRed = false;
      private boolean haveFGGreen = false;
      private boolean haveFGBlue = false;
      private boolean haveBGRed = false;
      private boolean haveBGGreen = false;
      private boolean haveBGBlue = false;
      private boolean haveThickness = false;
      private boolean haveIsFilled = false;
      private boolean haveImageData = false;
      private boolean haveTextData = false;
      private VCMessage vcmessage = null;
      public XMLDocumentReader(VCClient value)
           client = value;
           vcmessage = new VCMessage();
      public VCMessage getVCMessage()
           return vcmessage;
      public boolean haveSourceType()
         return haveSourceType; 
      public boolean ParseXML(InputStream stream)
         boolean success = false;
         // Use the default (non-validating) parser
        SAXParserFactory factory = SAXParserFactory.newInstance();
        try
             // Set up output stream
            out = new OutputStreamWriter(System.out, "UTF-8");
            // Parse the input
            SAXParser saxParser = factory.newSAXParser();
            saxParser.parse( stream, this );
            success = true;
        catch (SAXParseException spe)
            // Error generated by the parser
            System.out.println("\n** Parsing error"
               + ", line " + spe.getLineNumber()
               + ", uri " + spe.getSystemId());
            System.out.println("   " + spe.getMessage() );
            // Unpack the delivered exception to get the exception it contains
            Exception  x = spe;
            if (spe.getException() != null)
                x = spe.getException();
            x.printStackTrace();
            return success;
        catch (SAXException sxe)
             // Error generated by this application
             // (or a parser-initialization error)
             Exception  x = sxe;
             if (sxe.getException() != null)
                 x = sxe.getException();
             x.printStackTrace();
             return success;
        catch (ParserConfigurationException pce)
            // Parser with specified options can't be built
            pce.printStackTrace();
            return success;
        catch (Throwable t)
             t.printStackTrace();
             return success;
        return success;
      public void startDocument()throws SAXException
          emit("<?xml version='1.0' encoding='UTF-8'?>");
          nl();
      public void endDocument()throws SAXException
          try {
              nl();
              out.flush();
          } catch (IOException e) {
              throw new SAXException("I/O error", e);
      public void startElement(String namespaceURI,
                               String lName, // local name
                               String qName, // qualified name
                               Attributes attrs)throws SAXException
          String eName = lName; // element name
          if (eName.equals(""))
             eName = qName; // namespaceAware = false
          emit("<"+eName);
          if (attrs != null) {
              for (int i = 0; i < attrs.getLength(); i++) {
                  String aName = attrs.getLocalName(i); // Attr name
                  if (aName.equals("")) aName = attrs.getQName(i);
                  emit(" ");
                  emit(aName + "=\"" + attrs.getValue(i) + "\"");
          emit(">");
          if(makeStartTag(eName).equals(Constants.OPENING_SHAPEPROPERTIES))
                haveOpeningShapePropertiesTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_SHAPELOCATION))
              haveOpeningShapeLocationTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_BOUNDS))
                haveOpeningBoundsTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_FGCOLOR))
                 haveOpeningFGColorTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_BGCOLOR))
              haveOpeningBGColorTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_BGGREEN))
               System.out.println("See BGGreen");
          else if(makeStartTag(eName).equals(Constants.OPENING_BGBLUE))
               System.out.println("See BGBlue");
          else if(makeStartTag(eName).equals(Constants.OPENING_THICKNESS))
              haveOpeningThicknessTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_ISFILLED))
              haveOpeningIsFilledTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_IMAGEDATA))
              haveOpeningImageDataTag = true;
          else if(makeStartTag(eName).equals(Constants.OPENING_TEXTDATA))
              haveOpeningTextDataTag = true;
      public void endElement(String namespaceURI,
                             String sName, // simple name
                             String qName  // qualified name
                            )throws SAXException
           if(sName.equals("") && !qName.equals(""))
              sName = qName;
              emit("</"+sName+">");
           else
              emit("</"+sName+">");
           if(makeEndTag(sName).equals(Constants.CLOSING_SOURCE_TYPE))
              haveSourceType = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_USER))
              haveUserName = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_MESSAGE))
              haveMessage = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_PROCESSEVENT))
               haveProcessEvent = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_LINKEDLISTINDEX))
               haveLinkedListIndex = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_SHAPETYPE))
               haveShapeType = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_SHAPELOCATION))
                haveOpeningShapeLocationTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_WIDTH))
               haveBoundsWidth = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_HEIGHT))
               haveBoundsHeight = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_BOUNDS))
                haveOpeningBoundsTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_FGRED))
               haveFGRed = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_FGGREEN))
               haveFGGreen = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_FGBLUE))
               haveFGBlue = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_FGCOLOR))
                haveOpeningFGColorTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_BGRED))
               haveBGRed = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_BGGREEN))
             haveBGGreen = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_BGBLUE))
               System.out.println("See closing BGBlue");
               haveBGBlue = true;
           else if(makeEndTag(sName).equals(Constants.CLOSING_BGCOLOR))
                haveOpeningBGColorTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_THICKNESS))
               System.out.println("XMLDocumentReader: Step2");
                haveOpeningThicknessTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_ISFILLED))
               haveOpeningIsFilledTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_IMAGEDATA))
               haveOpeningImageDataTag = false;
           else if(makeEndTag(sName).equals(Constants.CLOSING_TEXTDATA))
               haveOpeningTextDataTag = false;
      private String makeStartTag(String tag_name)
           String start = "<";
           String end = ">";
           return start.concat(tag_name).concat(end);
      private String makeEndTag(String tag_name)
           String start = "</";
           String end = ">";
           return start.concat(tag_name).concat(end);
      public void characters(char buf[], int offset, int len)throws SAXException
           String s = new String(buf, offset, len);
          if(haveSourceType == false)
               if(vcmessage.getSourceType() == null)
                  try
                    if(s.equals(""))return;
                   int sourcetype = Integer.parseInt(s);
                   vcmessage.setSourceType(sourcetype);                            
                  catch(NumberFormatException nfe){}
          else if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE)
            if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE && haveUserName == false)
                 vcmessage.setUserName(s);          
            else if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE && haveMessage == false)
               //When the parser encounters interpreted characters like: & or <,
               //then this method gets invoked more than once for the whole message.
               //Therefore, we need to concatonate each portion of the message.  The
               //following method call automatically concatonates.
               vcmessage.concatMessage(s);                    
          else if(vcmessage.getSourceType() == SourceType.WHITEBOARD_SOURCE)
               if(haveProcessEvent == false)
                 try
                   vcmessage.setProcessEvent(Integer.parseInt(s));
                 catch(NumberFormatException nfe){}
               else if(haveLinkedListIndex == false)
                    try
                       vcmessage.setLinkedListIndex(Integer.parseInt(s));
                     catch(NumberFormatException nfe){}
               else if(haveShapeType == false)
                    try
                       vcmessage.setShapeType(Integer.parseInt(s));
                     catch(NumberFormatException nfe){}
               if(haveOpeningShapePropertiesTag)
                    if(haveOpeningShapeLocationTag)
                         if(haveOpeningXCoordTag)
                              try
                                vcmessage.setXCoordinate(Integer.parseInt(s));
                              catch(NumberFormatException nfe){}
                         else if(haveOpeningYCoordTag)
                              try
                                vcmessage.setYCoordinate(Integer.parseInt(s));
                                //reset all flags for ShapeLocation, X and Y coordinates
                                haveOpeningXCoordTag = false;
                                haveOpeningYCoordTag = false;
                                //haveOpeningShapeLocationTag = false;
                              catch(NumberFormatException nfe){}
                    else if(haveOpeningBoundsTag)
                         if(haveBoundsWidth == false)
                              try
                                vcmessage.setBoundsWidth(Integer.parseInt(s));
                              catch(NumberFormatException nfe){}
                         else if(haveBoundsHeight == false)
                              try
                                vcmessage.setBoundsHeight(Integer.parseInt(s));
                                //reset flag
                                //haveOpeningBoundsTag = false;
                              catch(NumberFormatException nfe){}
                    else if(haveOpeningFGColorTag)
                         if(haveFGRed == false)
                              try
                                vcmessage.setFGRed(Integer.parseInt(s));                           
                              catch(NumberFormatException nfe){}
                         else if(haveFGGreen == false)
                              try
                                vcmessage.setFGGreen(Integer.parseInt(s));                           
                              catch(NumberFormatException nfe){}
                         else if(haveFGBlue == false)
                              try
                                vcmessage.setFGBlue(Integer.parseInt(s));
                                //reset flag
                                //haveOpeningFGColorTag = false;
                              catch(NumberFormatException nfe){}
                    else if(haveOpeningBGColorTag)
                         if(haveBGRed == false)
                              try
                                vcmessage.setBGRed(Integer.parseInt(s));                           
                              catch(NumberFormatException nfe){}
                         else if(haveBGGreen == false)
                              try
                                vcmessage.setBGGreen(Integer.parseInt(s));                           
                              catch(NumberFormatException nfe){}
                         else if(haveBGBlue == false)
                         {   System.out.println("getting BGBlue data");
                              try
                                vcmessage.setBGBlue(Integer.parseInt(s));
                                //reset flag
                                //haveOpeningBGColorTag = false;
                              catch(NumberFormatException nfe){}
                    else if(haveOpeningThicknessTag)
                         try
                            vcmessage.setThickness(Integer.parseInt(s));                       
                          catch(NumberFormatException nfe){}
                    else if(haveOpeningIsFilledTag)
                         vcmessage.setIsFilled(s);
                    else if(haveOpeningImageDataTag && vcmessage.getProcessEvent() == org.jcanvas.comm.ProcessEvent.MODIFY)
                         vcmessage.setBase64ImageData(s);                    
                    else if(haveOpeningTextDataTag && vcmessage.getProcessEvent() == org.jcanvas.comm.ProcessEvent.MODIFY)
                         vcmessage.setTextData(s);
                    //reset
                    haveOpeningShapePropertiesTag = false;
          emit(s);
      //===========================================================
      // Utility Methods ...
      //===========================================================
      // Wrap I/O exceptions in SAX exceptions, to
      // suit handler signature requirements
      private void emit(String s)throws SAXException
          try {
              out.write(s);
              out.flush();
          } catch (IOException e) {
              throw new SAXException("I/O error", e);
      // Start a new line
      private void nl()throws SAXException
          try {
              out.write(lineEnd);
          } catch (IOException e) {
              throw new SAXException("I/O error", e);
      //treat validation errors as fatal
      public void error(SAXParseException e)
      throws SAXParseException
        throw e;
      // dump warnings too
      public void warning(SAXParseException err)
      throws SAXParseException
        System.out.println("** Warning"
            + ", line " + err.getLineNumber()
            + ", uri " + err.getSystemId());
        System.out.println("   " + err.getMessage());
    }

    Just out of curiosity what happens if you append a space to the end of the XML document?

  • Document Structure

    Dear Experts,
    Scenario:
    Create document in DMS with status IE In preparation.
    Change the document with status Release
    Before release of the document we validate that the respective documents are stored in respetive folders.
    Documents are stored manually by using CV12.
    Some times user stores the document with status IE in the folder which we want to validate as
    Only documents with released status should get stored in respective folders?
    I could not find any BADI / USER EXIT for this functionality?
    Can any body help on this ..
    Thanks and Regards
    Rane

    Dear Kristoffer
    Thanks for the reply
    Document_storage01 is used for storing Originals.
    What I am doing is DIR is being stored in Document structure say XYZ.
    So I need to validate at the time of transaction CV12 and not while check in process.
    Thanks and regards,
    Rane

  • DOCUMENT STRUCTURE INCONSISTENT ERROR

    Hi all,
    We are on SRM 5.0 ECS
    When w etry to create a PO and click on the CHECK button,we get the foll error:
    DOCUMENT STRUCTURE INCONSISTENT

    Your description is too generic - try to create yourself an example and hold it - no save. Then debug the transfer BBPPROCDOCTRANSFER. You should figure out more than this very general error description.
    Richard

  • Document structure & Document Hierarchy

    Hi,
    Can any one reply me the difference between Document structure & Document Hierarchy with suitable example for more clarification? Write me in your own words don’t give me the link from sap help, I know that.
    Waiting for your valuable response.
    Regards,
    Seema Pilankar

    Hi,
    from my point of view I would recommend you to use the functionality of document structure.
    The main difference is that for document structure you can create a header in transaction CV11 and then link as many document info records to it. Further transactions are CV12 (edit) and CV13 (display). So the document structure is easier to handle. Due to the position interval it should be possible to add up to 999 documents here.
    The document hierachy is nearly the same but you have to go the transaction CV02N and enter the superior document info record for each sub-document and this needs a lot more time than in CV12 for example. For the document hierarchy there is no limit on the number documents which are linked to a superior document info record.
    For more information please see the SAP Online documentation (http://help.sap.com) under:
    SAP R/3 Enterprise Application Components
    - Cross-Application Components
      - Document Management
         - Document Structures
    I hope this inrformation could be useful for you.
    Best regards,
    Christoph
    P.S.: Please don't forget to reward points for good information.

Maybe you are looking for