Where does the Services for Object (GOS) store data?

I have a requirement that I need to upload a Blocking Reason document for any blocked vendor.
The normal process we follow for blocking is XK02->Extras-> Blocked Data or XK05.
We want to check before the Vendor is saved with blocked data whether he/she (who is blocking the vendor) has uploaded the Blocking Reason Document .
I found out that we have an option in Vendor screen for uploading a document under 'Services for Object' in XK02 as shown in the below (in the red box).
After uploading the attachment it will show the uploaded document in the Attachment List as shown below.
I don't know where this entry is stored. I checked in the table SOOD (SAPoffice: Object definition), but there is no entry in there.
I would like to know on how to check whether the file has been uploaded at the time of saving the vendor.
If anyone knows the table in which this data is stored, kindly point it out.
Thank You,
Sreejith Babu.

Hi Sreehith,
Please refer the following document: http://wiki.scn.sap.com/wiki/x/yIEEBQ
These attachments can be downloaded using FM BDS_GOS_CONNECTIONS_GET
Refer the following document: Printing or Downloading Service For Object Attachments to local desktop
Regards,
Vijay

Similar Messages

  • Services for Object (GOS) Attachement List not showing after attachment

    Hi All,
    I have created a new entry for the Generic Object Service List and this links to a copy of the CL_GOS_SRV_ATTACHMENT_CREATE class (Create attachment) with some additional logic. However, after attaching a file, the "Attachment List" does not become available until after I re-enter the transaction. The attachment list is showing the correct attachments.
    After some (understatement...) investigation, I found that even if I try and link the new service to a unchanged copy of the CL_GOS_SRV_ATTACHMENT_CREATE service in SGOSATTR, it is not working. It is attaching fine, but the "Attachment List" entry in the Services for Object Menu is still greyed out. If I attach the original class CL_GOS_SRV_ATTACHMENT_CREATE to the newly created entry it works fine. e.g. straight after I attach a file to the transaction, the menu entry becomes available.
    I can't find where the re-draw of the GOS menu happens and hence can not determine what is going wrong. Does anybody know if this is part of the Kernel or is this actually done in ABAP ?
    Am I missing something ? Debugging including system debugging for two days now and can't find it... very frustrating.
    Any help would be appreciated.
    Thanks,
    Wouter.

    Hi Wouter,
    I had originally posted to ask if you had resolved this since I was facing the same issue, but then deleted my post when I was able to get it working. Sorry, I didn't mean to initiate a flurry of activity in such an old thread.
    My scenario is I created a new GOS service entry in table SGOSATTR using transaction SGOSM. My new service uploads attachments to an external document management system via a call to a RESTful web service. The class I use in the SGOSM entry is a custom subclass of CL_GOS_SRV_URL_CREATE.
    I resolved this issue by taking a look at what CL_GOS_SRV_URL_CREATE does in its EXECUTE method. The key bits to refresh the GOS Attachment List with the new attachment are...
    raise event commit_required. " if SGOSM has the commit flag checked
    raise event service_succeeded
           exporting eo_service = me.
    These events tell any subscribers to go do their thing-- which in this case includes a refresh of the GOS Attachment List. So in the EXECUTE method of my custom subclass, after I call function BINARY_RELATION_CREATE, I raise these events...
    CALL FUNCTION 'BINARY_RELATION_CREATE'
       EXPORTING
           obj_rolea     = gs_object
           obj_roleb    = rel_doc
           relationtype = 'URL'
       EXCEPTIONS
           OTHERS       = 1.
    CASE sy-subrc.
       WHEN 0.
           MESSAGE s043(sgos_msg). " The attachment was successfully created
           RAISE EVENT commit_required.
           RAISE EVENT service_succeeded
                 EXPORTING eo_service = me.
       WHEN OTHERS.
           MESSAGE s042(sgos_msg). " The attachment has not been created
    ENDCASE.
    I hope this is helpful to you even though your initial implementation was a while back. Thanks for replying to my question though!!
    Cheers,
    Amy

  • Service for Object - GOS

    Hello all,
    My client is wanting to use Services for Objects (GOS) to store comments about documents, notifications, etc.  One disadvantage of GOS is there is no visible way to tell if an attachment has been made.  I have been told there was an enhancement to the GOS that if an attachment is made to the GOS, the Icon would change color (or something visible) to indicate there is an attachment.  Can anyone help me with this?  I have searched OSS Notes but no luck so far.
    This site is running SAP version 710 Patch level 6. 
    Thanks,
    Bill

    I know this is an old post but for reference, this is what we currently do.
    implement badi gos_srv_select, in method select_services
    (code snippet)
      zstat = cl_gos_attachment_query=>count_for_object( is_object = is_lpor
                                                         ip_url = ' '
                                                         ip_arl = 'X'
                                                         ip_private = ' ' ).
      describe table zstat lines znum.
      if znum > 0.
        message s888(sabapdocu) with 'At least one note or attachment exists'.
      endif.
    I'm sure there are many other ways, this works good enough for us.
    Jim

  • How to disable the Services for Object in IW32?

    Hi Experts,
    May i know how to deactivate the create and delete attachment option if the status of the order in IW32 is already TECO? Please help

    I have found my own answer.  If your user type is setup as 'Service', you will not be have the "Services for Object" icon on IQS23.   If you need the icon to perform the that service, you must change the user type to Dialog from Logon Data.

  • How to add the "Services for Object" icon/functionality.

    Dear all.
    I have seen in some SAP standard transactions a button named "Services for Object" in the title bar of the screen. An example is in transaction MM03. The button is to the left of the title "Display Material xxxx".
    Does anyone know how I could incorporate such functionality in my own program.
    Thanks
    Lande.

    Hi,
    You need to use GOS for this.
    1. Create a Generic object thru transaction SW01.
    then call the following method in the PBO
    module call_gos_attachment output.
      if sy-tcode eq c_yatt2 .
          i_borident-objtype = 'YASTATTA'.
          i_borident-objkey = yatt-number.
          create object gos_manager
            exporting
               is_object            = i_borident
               it_service_selection = i_services
               ip_no_commit         = ' '
            exceptions
               object_invalid       = 1.
      endif.
      if sy-tcode eq c_yatt3.
          i_borident-objtype = 'YASTATTA'.
          i_borident-objkey = yatt-number.
          create object gos_manager
            exporting
               is_object            = i_borident
               it_service_selection = i_services
               ip_mode              = 'D'
            exceptions
               object_invalid       = 1.
      endif.
    endmodule.                               " Call_gos_attachment Output

  • Where does the password for Elgamal algorithm is stored

    hi,
    i am doing a project in Intelligent security in java using Elagamal algorithm. The feature of Elgamal is that the password is not stored in database . Then where is the password is stored to check for a existing user .
    If i am an existing user then when i type the username and password then it should check or compare and tell that password is right or wrong . so where is the password is stored to compare ?? please give me the coding in java .
    i need the coding immediately , of how to get the password and to store and then to compare where the user is correct else message should display "type the correct password".
    Given below is my Main window coding plz help me where to include the coding,
         This simple extension of the java.awt.Frame class
         contains all the elements necessary to act as the
         main window of an application.
    // LOGIN WINDOW ( FIRST WINDOW ) FOR LOGIN AND EXISTING USER
    import java.awt.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.sql.*;
    import java.math.*;
    import java.security.*;
    import java.io.IOException;
    import javax.crypto.Cipher;
    import javax.crypto.IllegalBlockSizeException;
    import javax.crypto.KeyGenerator;
    import javax.crypto.SecretKey;
    public class Smart extends Frame
         public Smart()
              // This code is automatically generated by Visual Cafe when you add
              // components to the visual environment. It instantiates and initializes
              // the components. To modify the code, only use code syntax that matches
              // what Visual Cafe can generate, or Visual Cafe may be unable to back
              // parse your Java file into its visual environment.
              //{{INIT_CONTROLS
              setLayout(null);
              setBackground(new java.awt.Color(255,247,192));
              setSize(1200,900);
    // 157,135,178
              setVisible(false);
              label1.setText("USERID");
              add(label1);
              label1.setFont(new Font("Dialog", Font.PLAIN, 14));
              label1.setBounds(315,180,84,48);
              label2.setText("PASSWORD");
              add(label2);
              label2.setFont(new Font("Dialog", Font.PLAIN, 14));
              label2.setBounds(315,260,100,40);
              textField1.setBounds(430,180,216,36);
              //textField1.setBackground(new java.awt.Color(196,197,233));//textfieldcolor
              add(textField1);
              textField2.setEchoChar('*');
              //textField2.setBackground(new java.awt.Color(196,197,233));
              add(textField2);
              textField2.setBounds(430,260,213,36);
              button1.setLabel("SUBMIT");
              add(button1);
              button1.setBackground(new java.awt.Color(196,197,233));
              button1.setBounds(320,360,120,40);
              button2.setLabel("CLEAR");
              add(button2);
              button2.setBackground(new java.awt.Color(196,197,233));
              button2.setBounds(520,360,120,40);
              label3.setText("REGISTRATION FORM");
              add(label3);
              label3.setFont(new Font("Dialog", Font.BOLD, 20));
              label3.setBounds(324,54,550,80);
              button3.setLabel("NEW USER REGISTRATION");
              add(button3);
              button3.setBackground(new java.awt.Color(196,197,233));
              button3.setBounds(369,450,232,40);
              //add(textArea1);
              //textArea1.setBounds(0,360,576,52);
              setTitle("LOGIN PHASE Application");
              /*int mStrength = 16;
              SecureRandom mSecureRandom = new SecureRandom();
              p = new BigInteger(mStrength, 16, mSecureRandom);*/
              //{{INIT_MENUS
              //{{REGISTER_LISTENERS
              SymWindow aSymWindow = new SymWindow();
              this.addWindowListener(aSymWindow);
              SymAction lSymAction = new SymAction();
              button1.addActionListener(lSymAction);
              button2.addActionListener(lSymAction);
              button3.addActionListener(lSymAction);
         public Smart(String title)
              this();
              setTitle(title);
    * Shows or hides the component depending on the boolean flag b.
    * @param b if true, show the component; otherwise, hide the component.
    * @see java.awt.Component#isVisible
    public void setVisible(boolean b)
              if(b)
              setLocation(50, 50);
              super.setVisible(b);
         public static void main(String args[])
         try
                   //Create a new instance of our application's frame, and make it visible.
              (new Smart()).setVisible(true);
              catch (Throwable t)
                   System.err.println(t);
                   t.printStackTrace();
                   // Ensure the application exits with an error condition.
                   System.exit(1);
              public void addNotify()
              // Record the size of the window prior to calling parents addNotify.
              Dimension d = getSize();
              super.addNotify();
              if (fComponentsAdjusted)
                   return;
              // Adjust components according to the insets
              setSize(getInsets().left + getInsets().right + d.width, getInsets().top + getInsets().bottom + d.height);
              Component components[] = getComponents();
              for (int i = 0; i < components.length; i++)
                   Point p = components.getLocation();
                   p.translate(getInsets().left, getInsets().top);
                   components[i].setLocation(p);
              fComponentsAdjusted = true;
         // Used for addNotify check.
         boolean fComponentsAdjusted = false;
         //{{DECLARE_CONTROLS
         java.awt.Button button1 = new java.awt.Button();
         java.awt.Button button2 = new java.awt.Button();
         java.awt.Label label1 = new java.awt.Label();
         java.awt.Label label2 = new java.awt.Label();
         java.awt.Label label3 = new java.awt.Label();
         java.awt.Button button3 = new java.awt.Button();
         java.awt.TextField textField1 = new java.awt.TextField();
         java.awt.TextField textField2 = new java.awt.TextField();
         java.awt.TextArea textArea1 = new java.awt.TextArea();
         //BigInteger p;
         //{{DECLARE_MENUS
         class SymWindow extends java.awt.event.WindowAdapter
              public void windowClosing(java.awt.event.WindowEvent event)
                   Object object = event.getSource();
                   if (object == Smart.this)
                        Smart_WindowClosing(event);
         void Smart_WindowClosing(java.awt.event.WindowEvent event)
              System.exit(0);
         class SymAction implements java.awt.event.ActionListener
              public void actionPerformed(java.awt.event.ActionEvent event)
                   Object object = event.getSource();
                   if (object == button1)
                        button1_ActionPerformed(event);
                   else if (object == button2)
                        button2_ActionPerformed(event);
                   else if (object == button3)
                        button3_ActionPerformed(event);
         void button1_ActionPerformed(java.awt.event.ActionEvent event)
              //try{
              String ids = textField1.getText();
              String pss = textField2.getText();
              byte [] bt = ids.getBytes();
              BigInteger id = new BigInteger(bt);
              //by samy byte [] bts = pss.getBytes();
              //BigInteger ps = new BigInteger(bts);
         int mStrength = 16;
         SecureRandom mSecureRandom = new SecureRandom();
         BigInteger p = new BigInteger(mStrength, 16, mSecureRandom);
         System.out.println("p = "+p.toString(16));
         BigInteger g = new BigInteger(mStrength - 1, mSecureRandom);
         System.out.println("g= "+g.toString(16));
         BigInteger x = new BigInteger(mStrength - 1, mSecureRandom);
         System.out.println("x="+x.toString(16));
         //byte[] bt = id.getBytes();
         BigInteger idb = new BigInteger(bt);
         //System.out.println("id= "+idb.toString(16));
         BigInteger ps = idb.modPow(x, p);
         //String pw = new String("pass = "+ps.toByteArray());
         System.out.println("ps ="+ps.toString(16));
         BigInteger r =null;
    BigInteger ONE = BigInteger.valueOf(1L);
    BigInteger p_1 = p.subtract(ONE);
    SecureRandom sr = new SecureRandom();
    do {
    r = new BigInteger(p.bitLength(), sr);
    } while (r.compareTo(ONE) <= 0 || r.compareTo(p_1) >= 0);
         System.out.println("r= "+r.toString(16));
         BigInteger c1 =idb.modPow(r,p);
         System.out.println("c1= "+c1.toString(16));
         long time = System.currentTimeMillis();
         System.out.println("TIME ="+time);
         BigInteger one = new BigInteger( new Integer(1).toString());
         BigInteger T = new BigInteger( new Long(time).toString());
         BigInteger t =T.xor(ps);
         BigInteger t1 = t.mod(p.subtract(one));
         System.out.println("t="+t1.toString(16));
         BigInteger M = idb.modPow(t1, p);
         System.out.println("M="+M.toString(16));
         int rnd = r.intValue();
         BigInteger c2 =ps.modPow(r,p).multiply(M).mod(p);
         System.out.println("c2 ="+c2.toString(16));
         //(bia[0].modPow(a, p).modInverse(p)).multiply(bia[1]).mod(p);
         BigInteger val1 = (c1.modPow(x,p).modInverse(p)).multiply(c2).mod(p);
         BigInteger val2 = id.modPow(t1,p);
         System.out.println(val1.toString(16));
         System.out.println(val2.toString(16));
    send s=new send();
    // }catch( IOException e){
    //System.out.println("Exception caught ") ; }     
    //     catch( Exception e){
    //System.out.println("Exception caught ") ; }               
         void button2_ActionPerformed(java.awt.event.ActionEvent event)
              textField1.setText("");
              textField2.setText("");
         void button3_ActionPerformed(java.awt.event.ActionEvent event)
         {   Security s1 = null;
              try
    System.out.println("this is in Smart ");
         //Create a new instance of our application's frame, and make it visible.
              s1 = new Security();
              s1.setVisible(true);
              catch (Throwable t)
                   System.err.println(t);
                   t.printStackTrace();
                   //Ensure the application exits with an error condition.
                   System.exit(1);
              //s1.dispose();     

    I was picking that up from your error message
    ..jsp_servlet\__savename.java:17: package com.company.project.ejb does not exist import com.company.project.ejb.UserData; //[ /SaveName.jsp; Line: 1]
    The folder structure needs to mirror the package structure exactly (standard java)
    So yes, If you have a com.company.project.ejb package with a class UserData within it
    "UserData.class" needs to be in folder "WEB-INF/classes/com/project/ejb/"
    If you don't have that class, then check your import statement - its asking for it.
    Good luck,
    evnafets

  • Where does the jar for a custom tag libary need to go?

    I am having trouble getting a custom tag library's classes found. These are located
    in a jar file called blazix.jar.
    I have the following GetName.jsp:
    <%@ taglib prefix="blx" uri="/blx.tld" %>
    <jsp:directive.page import="com.company.project.ejb.UserData"/>
    <jsp:useBean id="user" class="UserData" scope="session"/>
    <HTML>
         <BODY>
              <blx:getProperty name="user" property="*">
              <FORM METHOD=POST ACTION="SaveName.jsp">
                   What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR>
                   What's your e-mail address? <INPUT TYPE=TEXT NAME=email SIZE=20><BR>
                   What's your age? <INPUT TYPE=TEXT NAME=age SIZE=4>
                   <P><INPUT TYPE=SUBMIT>
              </FORM>
              </blx:getProperty>
         </BODY>
    </HTML>
    When I run this, I get the following:
    Parsing of JSP File '/GetName.jsp' failed:
    /GetName.jsp(1): Error in using tag library uri='/blx.tld' prefix='blx': cannot
    find tag class: 'desisoft.jsp.tagext.SetProp'
    probably occurred due to an error in /GetName.jsp line 1:
    <%@ taglib prefix="blx" uri="/blx.tld" %>
    The jar does contain the needed class (desisoft.jsp.tagext.SetProp), but how can
    I tell WebLogic where to find it?
    In other words, what directory does the blazix.jar need to go under? I tried
    adding it to my classpath but that did not help.
    Thanks!

    I got it. Just needed to add my own lib directory under WEB-INF and copy the jar
    to it.
    Question though, why wouldn't this get generated for me? Would think it would
    be a common thing to need.
    "Darrin" <[email protected]> wrote:
    >
    BTW,
    I placed the blx.tld file under the WEB-INF directory. It seems to find
    it OK
    there at least.
    "Darrin" <[email protected]> wrote:
    I am having trouble getting a custom tag library's classes found. These
    are located
    in a jar file called blazix.jar.
    I have the following GetName.jsp:
    <%@ taglib prefix="blx" uri="/blx.tld" %>
    <jsp:directive.page import="com.company.project.ejb.UserData"/>
    <jsp:useBean id="user" class="UserData" scope="session"/>
    <HTML>
         <BODY>
              <blx:getProperty name="user" property="*">
              <FORM METHOD=POST ACTION="SaveName.jsp">
                   What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR>
                   What's your e-mail address? <INPUT TYPE=TEXT NAME=email SIZE=20><BR>
                   What's your age? <INPUT TYPE=TEXT NAME=age SIZE=4>
                   <P><INPUT TYPE=SUBMIT>
              </FORM>
              </blx:getProperty>
         </BODY>
    </HTML>
    When I run this, I get the following:
    Parsing of JSP File '/GetName.jsp' failed:
    /GetName.jsp(1): Error in using tag library uri='/blx.tld' prefix='blx':
    cannot
    find tag class: 'desisoft.jsp.tagext.SetProp'
    probably occurred due to an error in /GetName.jsp line 1:
    <%@ taglib prefix="blx" uri="/blx.tld" %>
    The jar does contain the needed class (desisoft.jsp.tagext.SetProp),
    but how can
    I tell WebLogic where to find it?
    In other words, what directory does the blazix.jar need to go under?
    I tried
    adding it to my classpath but that did not help.
    Thanks!

  • Where does the class for useBean go?

    I'm having trouble in jsp when I try to do a useBean. WebLogic can't seem to find my class. Where should the bean that I am trying to use go, and how should I refer to it in the .jsp file that needs to use it? Do I need to import the bean class?
    I have the following structure:
    proj_home
    '-->all .jsp and html files
    '---->Classes
    '------->com
    '----------->company
    '-------------->project
    '----------------->all class files for the project
    '---->src
    '------->com
    '----------->company
    '-------------->project
    '--------------->all source files for the project
    '---->WEB-INF
    Currently the bean is named UserData. It is in package com.company.project.
    I tried placing the UserData.class file everywhere I could think of but that didn't help.
    I then tried to import it into the bean that uses it like this:
    <jsp:directive.page import="com.company.project.UserData"/>
    But that gives me errors saying this:
    ...jsp_servlet\__savename.java:17: package com.company.project.ejb does not exist import com.company.project.ejb.UserData; //[ /SaveName.jsp; Line: 1]
    Well it does exist, but under the CLASSES directory.
    HELP!

    I was picking that up from your error message
    ..jsp_servlet\__savename.java:17: package com.company.project.ejb does not exist import com.company.project.ejb.UserData; //[ /SaveName.jsp; Line: 1]
    The folder structure needs to mirror the package structure exactly (standard java)
    So yes, If you have a com.company.project.ejb package with a class UserData within it
    "UserData.class" needs to be in folder "WEB-INF/classes/com/project/ejb/"
    If you don't have that class, then check your import statement - its asking for it.
    Good luck,
    evnafets

  • Automating the services for object for a work order

    Hi All,
    Can anyone post an ABAP code using which we can automate the process of creating a note for a Work order at the time of saving the work order. I need to create a note with the work order at the time of saving it. This note needs to be attached automatically. Can anyone help me with the code to do this?

    Uhm... If you want us to do your job, how much are you willing to pay?
    How is the note "attached"? If it's an attachment using GOS then the code has already been posted on SDN - look it up. You'll need to add it to the work order creation (I'm guessing there should be some kind of BAPI or FM).

  • My workflow is not listed in the GOS (Services for object)

    Hello Experts,
    I developed a workflow and linked the BO ZBUS2081. This is sub type of standard BO BUS2081. I am using the custom event INVOICEBLOCKED to trigger the workflow. The workflow is triggered propely when the invoce is created (with block) thru MIRO and I can see the workflow in SWEL or SWI6 or SWI14.
    But, the workflow is not listed in the services for objects button of the invoice display using MIR4.
    If I use the standard event 'BLOCKEDQUANT' as starting event, the workflow is triggered and I can view it in services for object.
    In the table SWW_WI2OBJ has all entries about the workflow triggered using standard event or custom event.
    How can I make the services for object in invoice list my workflow that was triggered using custom evet?
    Appreciate your help.
    Regards
    Siva S

    Hi Siva
    Thanks for marking this thread answered.....We are glad that your issue was solved :-) ....... But I do agree with Rick Bakker, the first correct answer was by Paul Bakker and I had just elaborated on that.
    Please mark the first correct answer as the "green" one.
    Regards,
    Modak

  • Display GOS without click on 'Service for Object' button

    Please try the following step to figure out.
    1) VA03
    2) At header of report (on the left hand side of 'Display S/O SysB SDI xxxxxxxxx:Overview' ) has a button called 'Services for Object' (GOS)
    3) Click on that then it will popup icon menu set.  <--- Want this to be displayed when access VA03 by no need to click the button in 2)
    My requirement is I want this popup to be displayed suddenly after I access VA03 (no need to click on the Services for Object button anymore).
    <b>
    Could you please provide me any solution, function, example, similar case, etc. (based on 4.6c)?</b>
    Thank you all expert in advance.. I'll be here to provide you more information that need.

    I found the solution yet. Let me drop a note to be a memorandum.
    (1) Insert code into the last line of form <u>USEREXIT_READ_DOCUMENT</u> within report <u>MV45AFZZ</u>
    PERFORM UNITEXIT_READ_DOCUMENT.
    <b>*{   INSERT
    *[Display Attachment Service Automatically]
        DATA: lo_myobject  TYPE REF TO cl_gos_manager,
              lo_container TYPE REF TO cl_gui_custom_container,
              ls_object    TYPE borident.  "BOR Identifier
          ls_object-objkey  = vbak-vbeln.
          ls_object-objtype = 'BUS2032'.
          CREATE OBJECT lo_myobject.
          CALL METHOD lo_myobject->start_service_direct
                      EXPORTING ip_service   = 'VIEW_ATTA'
                                is_object    = ls_object
                                io_container = lo_container
                      EXCEPTIONS OTHERS          = 2.
    *[Display Toolbox]
        CALL METHOD lo_myobject->DISPLAY_TOOLBOX
                    EXPORTING  is_object       = ls_object
                               io_container    = lo_container
                    EXCEPTIONS OTHERS          = 2.
    *}   INSERT</b>
    ENDFORM.
    (2) Try open VA03 and insert attachment at Service for Object.
    (3) Reopen VA03, attachment list displayed suddenly.
    <i>Reference Source# SAP Library, search 'Starting Only One Service Directly'.</i>
    <b>NOTE:</b> You can use another relevant object by SE24 -> CL_GOS_MANAGER

  • Services for Object - Store Business Documents (issue with XLSX files)

    Hi,
    We are using the Services for Object > Store Business Document to be able to drag and drop files into (for example) Sales Inquiry, Sales Order, Sales Quotations etc.
    Within OAC2 we have set up the global document types and these have been linked to the relevant Object Types and Content Repositories in OAC3.  We have also set up the Content Repository as Document Area 'ARCHLINK'.
    The ArhciveLink Basic Settings in OAG1 have the 'Always Copy Document Class from Document Type' set under Storage Settings.
    The issue we are having is with XLSX document types.  When we drag and drop the XLSX documen type using the Store Business Document the file is stored against the Sales Order but when you come to view the attachments MS Excel opens but an error message appears saying 'Excel cannot open the file '******' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file'?
    We have reviewed SAP notes 1925897, 1739026 and 1145885 however non appear to give me a clear answer as to why this is happening?
    I have found that if we unselect the option 'Always Copy Document Class from Document Type' in OAG1 then we can open the XLSX files.
    As we have a significant amount of documents attached to various objects, what would be the implications of making this change agianst existing records and new records?
    Any advice on this issue would be greatly appreciated.
    Gary B

    Hi David,
    No joy I'm afraid!!
    I added entry 'xlslx' with the relevant MIME Type, Application and Description into table TOADD for the ArchiveLink settings and also this entry was already in tables SDOKMIME and SDOKFEXT for KPro.
    I then following the process via the Services for Object within VA12 (Change Inquiry) to then Create > Store Business document > Select the relevant Document Type > Drag and Drop the XLSX file into the empty box.
    I then saved the record and tried to view the attachement but I am still getting the same message  'Excel cannot open the file '******' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file'?
    Our client is on componet SAP_BASIS release 701 Support Level 0014 and Support Package SAPKB70114 and I can see that note 1237688 is for SAPKB70112?
    Regards
    Gary

  • Services for Object/store Business documents in AS01

    HI
    We have a requirement to enable the services for object to attach documents to Asset master. We have made configuration in Trx OAC2,OAC3 for object type BUS1022. The ICON is appearing for AS02 & AS03 but not for AS01. We are 6.0 version
    How can I aactivate that for AS01. Is it SAP standard or can we activate?
    Please provide me the solution.
    Thanks
    Sailaja Ala

    Hi,
    Absolutely it is not possible.
    The services for object is only visible, once the original object is created.
    Even if you check for normal F-02 entry also, it wont be visible during entry, but will be visible after posting if we go thru FB02 or FB03.
    Any attachment can be assigned through the services for object, is possible only after creation of the dependent / original data.
    So for AS02 and AS03, the dependent data has to be there in the DB, which has been created with AS01.
    Thanks,
    Srinu

  • GOS - Services for Object attachment icon

    I may be posting this in the wrong forum, but my question is this.  Is the Services for Object button ICON supposed to change colors or something when there is an attachment?  How can you tell if there is an attachment for the object?

    Thanks for the reply.  This is true, what you say.  But I was talking about the the Services for Object Icon.  I want to know if an attachment exists without having to click on on the button.  I would expect the button to change colors or something if there is an attachment.

  • Content server for Document attachment through "services for object" Icon.

    Guys,
    I have typical problem in installation of Content server for storing external documents.
    We all know that we can attach the document in SAP using the icon “SERVICES FOR OBJECT”. By this we can attach the document to the specific object we want.
    -Since my client wants only document attachment method not to completely implement SAP DMS, I proposed this method of attaching documents through services for object method.
    -If documents are stored though services for object ,The attached document will directly get stored in sap database(correct me if I am wrong) while  in  DMS it ask you to select the storage location while u check in for any document
    -By storing the doc thru "services for object " For long run when we store the documents in sap database our system will drastically get slow down.
    -In this regard I have a plan to incorporate external storage server.
    -Now I should know that how I should customize content server configuration so that the attachment through services for object will store into this content server I need to know how to define Client, Content Category, Content Repository, Document Area, Physical Machine, IP Address, Port. (OACT & OAC0)
    I appreciate for immediate solution and <u><b>Points will be rewarded for sure.</b></u>
    Regards,
    Murali.S

    Hi Murali,
    Don't Worry, its possible,
    All attachments can be stored in SAP Content Server also, but through archiving process.
    Set up a database storage system.
    Preparation
    Make sure that the HTTP plugin is active.
    Transaction <b>SMICM,</b> "Display Services" function key (shift F1)). The list of services must contain a port other than 0 for HTTP.If not, you must adjust the relevant profile parameter.
    <u>Typical entry:</u>
    icm/server_port_0         PROT=HTTP, PORT=1080, TIMEOUT=900
    <b>Make sure that the /sap/bc/contentserver service is active.</b>
    If no user is defined, then use transaction SU01 to create a new user. Use the "System" user type.Assign
    the SAP_ALL and SAP_NEW profiles to the user. (Eg: HRUSER/PLMUSER/PPUSER etc)
    Transaction <b>SICF,</b> select: default_host - sap - bc -contentserver. Select the function to display/change the service. Make sure that a user is defined.
    Using the relevant data from the newly created user, maintain the anonymous logon data for the
    /default_host/sap/bc/ service and save & activate the changes in transaction <b>SICF</b>.  Double click on content server and give the user name which has been created (HRUSER/PLMUSER/PPUSER/MMUSER etc)
    Check the system PSE.
    Start transaction <b>STRUST</b>. Expand the system PSE. The system PSE must be "green" for each application
    server.
    Determine a suitable exchange directory.
    The exchange directory must be accessible from each application server. If all application servers are running on the same platform (for example, Windows), one network directory that is accessible on all application server (for example,
    server\share) is sufficient. You can generally use the global directory
    (profile parameter DIR_GLOBAL).You can use the RSPARAM report to determine the profile parameters.
    Setting up the storage
    Create a table for storing the data. Using transaction <b>SE11</b>, create a copy of the SDOKCONT1
    table. If you want to create the repository database, you can name the table ZCONT_DB, for example. Save the
    table as a local object. Activate the table.
    Create a repository.
    Use transaction <b>OAC0</b> to create a new repository.
    Use the following parameters:
    Repository Max. two characters, for example,” Z1”
    DocArea: ARCHLINK
    Storage type: R/3 database
    Storage subtype: normal
    Version no. : 0046 
    Contents table <table name> for example: ZCONT_DB
    Exchange directory <directory name> for example:
    server\share\
    Make sure that the exchange list ends with a \ (or /on Unix).If you are using a variety of platforms, you must use transaction FILE to define a suitable logical file name and use this name. Save the settings.
    1. Maintain view table <b>TOAAR_C</b>, via SM31
       Cross client table displayed as information, forget it
    2. In field 'StSytm' you must entered 'Z1' as your system need, or anything that you need but you must configure HR Archive link too.
    3. In field 'Arch.path' (direct above Spoolpath), entered path in your system, this real path in your operating system. May be you should confirm to your Basis consultant where exactly you could store picture files. So if you enter '/', your file exists at root directory at your UNIX system.
    4. Choose 'File store' radio button
    5. Save.
    First
    <b>1. You have to create a number range for SAP ArchiveLink.
        IMG: Basis Components-> Basis Services -> SAP ArchiveLink -> Basic Settings-> Maintain number ranges   
        (Trxn <b>OANR).</b> Create number range 01 from 0000000001 to 9999999999 without the external number flag. 
    2. Document type <b>HRICOLFOTO</b> must exist with document class JPG.
        IMG: Basis Components->Basis Services->SAP ArchiveLink->System Settings->Maintain document types
        (Table<b> TOAVE, Trxn OAC2).</b>
    3. Document type <b>HRICOLFOTO</b> must be linked to object type PREL and Infotype PA0002.
        IMG: Personnel Management->Personnel Administration->Tools->Optical archiving->Set up Optical Archiving
        in HR.  (View V_T585O, no Trxn). In the first two columns there are minuses, the third (Date) has
       a plus - don't put a flag in the check box.
    4. Check which content repository (Archive) is linked to document type HRICOLFOTO and object type  
        PREL. IMG: <b>Basis Components->Basis Services->SAP ArchiveLink->Basic Settings->Maintain Links (Table 
       TOAOM_C, Trxn).</b></b>
    Test
    • Test the repository.
    Use transaction SE38 to start the RSCMSTH0 report. Specify your repository (i.e. Z1) and start the test.
    The report must run without errors. If no problems occurred, you can use the new repository with Archive Link after you carry out the Archive Link Customizing. If problems do occur, check whether one of the related
    notes helps.
    For More Details :
    http://service.sap.com/archivelink.
    <u><b>
    NOTE:- Screen Shots are missing, i was not able to paste here, One more thing is we did this for uploading a PHOTOS into Content Server, Similarly you have to create a REPOSITORY and Z-TABLE to bring all the Attachments from all the selected Objects and then route them to the CONTENT REPOSITORY.</b></u>
    Your Senior ABAP guy would help you in this, if not i may try to help you more by monday.
    Regards
    Rehman
    <b>Reward Your Points if Satisfied.</b>

Maybe you are looking for

  • Logitech trackball not recognized after 10.5.8 update- LCC 3.1 needed

    Logitech Trackman wireless trackball was not recognized after 10.5.8 upgrade. At re-boot, the "searching for bluetooth mouse" screen appeared, pushing the re-set button on the wireless base and trackball did not solve the problem. Had to plug in my A

  • Syncing Music Library in 'Shared' Folder

    Our music collection sits in the 'shared' user folder on our family MAC, and the iTunes in our individual accounts point to that folder. This way we only have 1 copy of the music but all have our own XML file for playlists and such. Currently, the Ap

  • Impossible to transfert films from Apple TV to iMac

    Impossible to transfer films bought on Apple Store from Apple TV to my iMac. So I cannot add those films to my iPad.

  • Programatically selecting a tab

    Is there a way I can automatically select a tab in my tabbed panel? I have two tabs and in one panel I have a textbox with a submit button. When clicked it uses ajax to update the content in the other tab so I'd like to also switch the view to that t

  • Adobe CS4 - Upgrade OS

    Hello together, I´m going to uprade from OS 10.5.8 to 10.6. Can someone please tell me, what happens to my Adobe CS4 after the Upgrade?? Do i need the Serial-Number again after upgrading the OS? This would be a serious problem for me. Thank you very