Content Server 6.40 on Raw Devices

Hi Folks!
We'd like to install a Content Server 6.40 using raw devices (on Linux Suse SLES9).
Do we need to install the MaxDB, if we use raw devices? At this point the InstGuide does not give a clear description of what to do. It looks we can use the raw devices directly without having a database instance. Is this right?
Is there any disadvantage compared to using the access via file system and DB?
Any hint is appreciated...
Best regards
Torsten

Hi Torsten,
As far as i know SAP Content Server use MaxDB or a File System, I have use it with MaxDB with good results, anyhow.... read the following for details,
http://help.sap.com/saphelp_nw04s/helpdata/en/40/32104211625933e10000000a155106/content.htm
Regards
Juan
Please reward with points if helpdul

Similar Messages

  • CREATING RAW DEVICE IN LINUX

    HI ALL,
    in redhat linux 5 how to format the disk(ex: /opt,/u01,.....) and make it as raw device for ASM installation

    DSP_863977 wrote:
    HI ALL,
    in redhat linux 5 how to format the disk(ex: /opt,/u01,.....) and make it as raw device for ASM installationit is not possible to change a mount /opt or /u01 for ASM storage.
    for learning purpose you can learn with vmware server to create a raw device to configure/install ASM.
    Refer the link:- shared storage part for linux5/rhel5
    http://oracleinstance.blogspot.com/2010/03/oracle-10g-installation-in-linux-5.html
    for more information refer the link:-
    http://download.oracle.com/docs/cd/B28359_01/server.111/b31107/asmprepare.htm

  • RAW DEVICE와 FILE SYSTEM 간에 오라클 데이터화일 이동하기

    제품 : ORACLE SERVER
    작성날짜 : 1999-11-30
    RAW DEVICE와 FILE SYSTEM 간에 오라클 데이터화일 이동하기
    ======================================================
    유닉스 명령이 dd를 이용하여 오라클 데이터화일을 Unix File System과 Raw
    Device 간에 이동할 수 있으나, 플랫폼 별 Raw Device의 특성으로 인하여 주의할
    점이 있다. 만일 잘못된 이동으로 인하여 데이터베이스가 기동하지 못하면,
    ORA-7366 (sfifi: invalid file, file does not have valid header block.)
    에러가 발생할 수 있다.
    예를 들어 Digital unix의 경우는 raw device에 64k OS 헤더가 필요하므로 dd
    명령어 옵션 중 iseek와 oseek를 활용하여야 한다.
    다음은 예제를 통하여 데이터화일을 Raw Device에서 Unix File System으로
    이동하는 절차이다.
    (운영 현황)
    - 현재의 위치: /dev/rdsk/c0t15d0s7
    - 이동할 위치: /oracle/file/system.dbf
    - 화일의 크기: 488636416 bytes <--- V$DATAFILE.BYTES column 값!
    - DB_BLOCK_SIZE: 2048 bytes
    (준비 단계)
    1. Oracle 블럭 수 계산:
    BYTES / DB_BLOCK_SIZE = 488636416 / 2048 = 238592 (블럭)
    2. O/S file header 블럭 추가:
    238592 + 1 = 238593 (블럭)
    : "ls -l /oracle/file/system.dbf" 명령으로 확인 가능하며, O/S file
    header는 1블럭으로 항상 일정함.
    3. Raw Device OS header 블럭 계산:
    64K / DB_BLOCK_SIZE = 65536 / 2048 = 32 (블럭)
    : 사용할 dd 명령어 중 블럭의 크기를 DB_BLOCK_SIZE(2048바이트)로 할
    예정이므로 2048로 나누어야 함.
    (명령어 형식)
    $ dd if=<raw device> of=<UFS file> bs=<oracle blocksize>
    iseek=<blocks to skip> count=<total count>
    (명령어 수행 절차)
    (1) SVRMGR> STARTUP MOUNT
    (2) SVRMGR> !dd if=/dev/rdsk/c0t15d0s7 of=/oracle/file/system.dbf
    bs=2048 iseek=32 count=238593
    (3) SVRMGR> ALTER DATABASE RENAME FILE '/dev/rdsk/c0t15d0s7' TO
    '/oracle/file/system.dbf';
    (4) SVRMGR> ALTER DATABASE OPEN;
    ========================================================================
    반대로 Unix File System에서 Raw Device로 이동하는 명령어 형식은 아래와 같다.
    (명령어 형식)
    $ dd if=<UFS file> of=<raw device> bs=<oracle blocksize> \
    oseek=<blocks to skip> count=<total count>
    유사한 방식으로 데이타 화일 뿐 아니라 리두 로그 화일도 이동할 수 있다.
    [주의] Raw Device의 블럭 헤더의 크기는 OS마다 다를 수 있으므로 플랫폼
    벤더사에 미리 확인한 후 작업하여야 한다.

  • Deleting raw device content

    Hello,
    After one installation of cluster software (with problem) I try to install one more time, but the last installation of cluster software leaves some data on my raw devices (for OCR and Voting Disk I use direct raw devices without OCFS, for data files ASM on raw devices).
    How can I really delete the content of raw devices? When I delete partitions and create new, it does not delete the content.
    Thanx,
    Jacek

    I don't know your OS, this is for Linux:
    dd if=/dev/zero of=<raw_device>
    This command writes binary 0's to the destination.
    Be careful when specifying the 'of' argument, this command is used also to clean a whole harddisk (when you plan to sell it).
    Werner

  • How DRM works? Adobe-id, authorize devices, Content Server, Adobe Digital Edition etc.

    I fail to understand why there isn't a coherent end-to-end documentation of how DRM works with all the individual pieces ADE, Content-Server, adobe-id coming together in protecting/limiting copying of PDFs and binding limited number of devices. I've googled enough and went through forums but the information is scattered and missing. Could someone throw light on these sample queries -
    1. Say, I've ADE installed on PC, which I'm using to authorize a device, say sony reader. Will I've to connect to internet (be online) while authorizing the device even when my ADE is already authorized? How does Adobe ensure that a document is copied to only limited 5/6 devices?
    2. Do content-server, say installed at Overdrive etc., interact with Adobe for any adobe-id sharing?
    3. At what instances do ADE interact (over the internet) with Adobe directly and with Content-server directly when making the drm-enabled PDF available for reading. How does the interaction look like while transferring the drm-enabled PDF to another device, say Sony reader, from ADE?
    4. How is the information regarding PDF sharing tracked and managed to ensure limited sharing/copying? Is there a central server managing that?
    5. What if I download the same PDF from another PC with ADE authroized with same adobe-id? Will the new PC be treated as 2nd device? If so, is that information stored and synced regularly from main Adobe authorization servers and content-servers?
    Please note that I'm not interested in knowing Adobe's intellectual property but the flow and the interaction among it's various pieces.

    When you deactivate a device, the used activation is not added back to the pool.
    How do I increase the number of activations if I run out?
    You can go to this Adobe page to increase the number of activations: http://www.adobe.com/support/digitaleditions/.

  • Raw device owners change after reboot the server

    The raw device owner change after reboot the server. i have to adjust it manually like
    chown oracle:oinstall /dev/raw/raw*
    any idea to make it permanent after bouncing the Server?
    MY OS is RHEL4 & Rdbms 10.2.0.1

    I got my answer .
    New to Linex. Need suggestions...
    How i can create new file ? like i want to create file oracle.permission
    should i use this command
    touch <filename> or any other command?
    second i want to put these entries raw device 3, 6,7,10,11 etc
    shoud it work ? like in the oracle.permission directory?
    # ASM
    raw/raw[3671011]:oracle:dba:0660

  • Raw device DB duplication on new server

    Hi i want to duplicate my DB on new serves, the db is on raw devices what would be the best approcach?

    Hi,
    Which version of database you are using.
    You can put u r tablespace in backup mode and then you can copy your raw devices with DD command if you are using unix.
    But I am not sure how you will apply archive logs for this kind of manual backups.It should be same way as you restore the from the backup.
    Not sure how much it will help :)
    Regards
    MMU

  • Raw device not seen  after reboot the server

    hi,
    I hv upgrade kernal in linux 7.2 but when reboot system no raw device found
    how can find out raw device

    From http://www.fors.com/orasupp/unix/37914_1.HTM
    Raw Devices and Oracle - 20 Common Questions and Answers
    2. How can a raw device be recognised?
    In the /dev directory, there are essentially two type of files: block
    special and character special. Block special files are used when data is
    transferred to or from a device in fixed size amounts (blocks), whereas
    character special files are used when data is transferred in varying
    size amounts. Raw devices use character special files; a long listing
    of the /dev directory shows them with a 'c' at the leftmost position of
    the permissions field, e.g.
    crw-rw-rw- 1 root system 15, 0 Mar 12 09:45 rfd0
    In addition, character special files usually have names beginning with
    an 'r', as shown in the above example. Some devices, principally disks,
    have both a block special device and a character special device
    associated with them; for the floppy diskette shown above, there is also
    a device
    brw-rw-rw- 1 root system 15, 0 Apr 16 15:42 /dev/fd0
    So the presence of a 'c' in a device does NOT necessarily mean this is a
    raw device suitable for use by Oracle (or another application).
    Generally, a raw device needs to be created and set aside for Oracle (or
    whatever application is going to use it) when the UNIX system is set
    up - therefore, this needs to be done with close co-operation between
    the DBA and UNIX system administrator.
    Once a raw device is in use by Oracle, it must be owned by the oracle
    account, and may be identified in this way.

  • Question(s) related to ASM, Raw devices and performance

    Good morning,
    I was recently getting acquainted with ASM. Since I was doing this in "play" VM boxes, it was not possible to draw any conclusions about any performance improvements.
    I'd like to know what performance improvements forum members may have experienced after migrating a production environment from a non-ASM setup to an ASM setup.
    It would seem that since ASM is a "form" of raw device access that the increase in performance should be noticeable. Was that the case for those who migrated to it ? Was the performance improvement worth it or did it only make managing the database easier ?
    Thank you for your contributions on the subject,
    John.

    ASM uses disk groups to store datafiles; an ASM disk group is a collection of disks that ASM manages as a unit. Within a disk group, ASM exposes a file system interface for Oracle database files. The content of files that are stored in a disk group are evenly distributed, or striped, to eliminate hot spots and to provide uniform performance across the disks. The performance is comparable to the performance of raw devices.
    You can add or remove disks from a disk group while a database continues to access files from the disk group. When you add or remove disks from a disk group, ASM automatically redistributes the file contents and eliminates the need for downtime when redistributing the content.
    I hope the links below will helps you.
    refer the links:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b31107/asmcon.htm
    http://oracleinstance.blogspot.com/2009/12/rac-file-system-options-basic-concept.html
    http://www.dbasupport.com/oracle/ora10g/ASM01.shtml
    also you will get more information from book:
    Oracle Automatic Storage Management: Under-the-Hood & Practical Deployment Guide (Osborne ORACLE Press Series)
    Nitin Vengurlekar (Author), Murali Vallath (Author), Rich Long (Author)
    http://www.amazon.com/Oracle-Automatic-Storage-Management-Under/dp/0071496076

  • The difference between Telepresence Content Server and MSE 3500

    Good day! Could someone explain me what's the difference between Telepresence Content Server and MSE 3500? Why do I need to obtain two these devices for sorting out my tasks? I want to understand gist of the first and the second devices.

    In addition to what Jonathan posted above, here is a Capture Transform Share Solution Guide that goes over a little bit of what the TCS and MXE are and some possible deployment scenarios.
    In short, TCS is used to record video conferences or lectures that can be streamed on demand or live using various streaming or distribution methods.  One such distribution method is using the MXE 3500 to ingest the recordings from TCS and convert them to different media types and add in-video content such as logos etc.  However, from the MXE, you can't send the video back to the TCS for viewing, you'd need to send that off to another viewing portal such as Show and Share.

  • Help needed in building a demo mobile app for DRM support using Content server 4

    Hi all,
    I am building an application for the blackberry to support reading of pdf and ebuf content similar to Adobe Digital Editions with DRM support . I came to know about the Adobe RMSDK .
    Following is my understanding regarding my implementation , please correct me if i am wrong:
    The DRM implementation on a mobile device for Adobe should satisfy the following criteria:
    1. The mobile device should have a application which uses the Adobe RMSDK.
    2. The publisher or the server app should install and run the content server 4
    3. An acsm file which contains the rights data should be saved stored at the adobe server and should be downloaded by the mobile client.
    4. The urls in the acsm xml file will be used to fetch the content for the ebook.
    I have the following querries:
    1. Is there an implementation of the RMSDK for java to run on blackberry.
    2. Is Adobe content server 4 free to install, if not do we have a test server for this purpose.
    Thanks in advance for the help.

    Hi Jim,
    Thanks for your kind reply. I have some more querries
    Suppose if we have a client implementation of the Adove RMSDK in java,  please help answer these querries:
    1. How do we connect to the cs4 server (what will be the flow of data, is there a documentaion regarding the protocol to be used between the mobile client and the cs4 server in order to communicate and fetch Rights protected ebuf and pdf data.
    2. The link http://www.adobe.com/products/digitaleditions/library does not give me information of how to use this library to store by ebook data and fetch  drm data from the mobile client and the protocol/communication followed.
    3. How do i go forward in evaluating acs4( getting a test version of cs4 and using it ). We want to build a demo app in blackberry.
    thanks
    Amit

  • 10g ASM on Logical Volumes vs. Raw devices and SAN Virtualization

    We are looking at setting up our standards for Oracle 10g non-rac systems. We are looking at the value of Oracle ASM in our environment.
    As per the official Oracle documentation, raw devices are preferred to using Logical Volumes when using ASM.
    From here: http://download.oracle.com/docs/cd/B19306_01/server.102/b15658/appa_aix.htm#sthr
    ef723
    "Note: Do not add logical volumes to Automatic Storage Management disk groups. Automatic Storage Management works best when you add raw disk devices to disk groups. If you are using Automatic Storage Management, then do not use LVM for striping. Automatic Storage Management implements striping and mirroring."
    Also, as per Metalink note 452924.1:
    "10) Avoid using a Logical Volume Manager (LVM) because an LVM would be redundant."
    The issue is: if we use raw disk devices presented to ASM, the disks don't show up as used in the unix/AIX system tools (i.e. smit, lspv, etc.). Hence, when looking for raw devices on the system to add to filesystems/volume groups/etc., it's highly possible that a UNIX admin will grab a raw device that is already in use by Oracle ASM.
    Additionally, we are using a an IBM DS8300 SAN with IBM SAN Volume Controller (SVC) in front of it. Hence, we already have storage virtualization and I/O balancing at the SAN/hardware level.
    I'm looking for a little clarification to the following questions, as my understanding of their responses seem to confict:
    QUESTION #1: Can anyone clarify/provide additional detail as to why Logical volumes are not preferred when using Oracle ASM? Does the argument still hold in a SAN Virtualized environment?
    QUESTION #2: Does virtualization at the software level (ASM) make sense in our environment? As we already have I/O balancing provided at the hardware level via our SVC, what do we gain by adding yet another level of I/O balancing at the ASM level? Or as in the
    arguments the Oracle documentation makes against using Lvm, is this an unnecessary redundant striping (double-striped or in our case triple-striped/plaid)?
    QUESTION #3: So does SAN Virtualization conflict or compliment the virtualization provided by ASM?

    After more research/discussions/SR's, I've come to the following conclusion.
    Basically, in an intelligent storage environment (i.e. SVC), you're not getting a 100% bang for the buck by using ASM. Which is the cat's meow in a commodity hardware/unintelligent storage environment.
    Using ASM in a SVC environment potentially wastes CPU cycles having ASM balance i/o that is already balanced on the backend (sure if you shuffle a deck of cards that are already shuffled you're not doing any harm, but if they're already shuffled - then why are you shuffling them again??).
    That being said, there may still be some value for using ASM from the standpoint of storage management for multiple instances on a server. For example, one could better minimize space wastage by being able to share a "pool" of storage between mulitiple instances, rather than having to manage space on an instance-by-instance (or filesystem by filesystem) level.
    Also, in the case of having a unfriendly OS where one is unable to dynamically grow a filesystem (i.e. database outage required), there would be a definite benefit provided by ASM in being able to dynamically allocate disks to the "pool". Of course, with most higher-end end systems, dynamic filesystem growth is pretty much a given.
    In the case of RAC, regardless of the backend, ASM with raw is a no-brainer.
    In the case of a standalone instance, it's a judgement call. My vote in the case of intelligent storage where one could dynamically grow filesystems, would be to keep ASM out of the picture.
    Your vote may be different....just make sure you're putting in a solution to a problem and not a solution that's looking for a problem(s).
    And there's the whole culture of IT thing as well (i.e. do your storage guys know what you're doing and vice versa).....which can destroy any technological solution, regardless of how great it is.

  • Linking a CRM case to a document in an external Content server - CRM 6.0

    Hi,
    We are creating a case from a scanned document, the document is stored in a separate content server. Now we need to link the created case to the scanned document in the content server. We need to be able to access the document/image from within the create case using WebClient
    Kind Regards

    Pradeep,
      Yes my users are over a 10 state area geographically, with u201Cpotentialu201D handheld access to the documents that would be attached to functional locations and equipments using the CV0*N access.  They would have no need to u201Ccheckout/checkinu201D documents in the field, but would need view access or print access from their field device via a work order wrote against the equipment or F.L. to which the documents would be attached.  I envision a separate small group of users that would actually u201Cmanageu201D the documents themselves such as u201Ccheck out/update/check back inu201D to the separate server location where the file(s) are located. 
      I understand in principle (I think) the DMS storage, but again, if I select u201Ckprou201D (currently unselected for my document type) you make the following comments: u201C2. 'kPro Storage' option (may store in SAP DB,HTTP Content Server), herein you can store 'n' originals/documents and 'n' additional files, AND
    HTTP content server  You may either use the SAP Content Server or an external/third-party content server.Typically, content server is opted for when operating in a distributed environment(users accessing from several locations)/index based search is needed/n:n mapping scenario exists. 
    Logical repository
    This storage type allows access to different physical repositories, independently of the client and the system ID.u201D
    So based on these comments, are you saying I should select u201CKprou201D for my particular document type and that I should define the external server as either an u201CHTTP content serveru201D or either a u201Clogical repositoryu201D?  If yes, then as I commented in my 1st ask, please advise how u201CI should use for "Maintaining the Storage System" since based on the selection of "Storage Type" whether HTTP content server or Structure Storage System, or Logical repository decides how the rest of your screen looks for further selection.u201D  Thanks in advance.

  • How to create DIR/File on a raw device in RAC environment.

    Hi all,
    I use a shell script to create DIR and File on a raw device also it creates schema and tablespaces.
    I am facing problem in creating DIR and Files on raw device.
    One more thing, can multiple tablespaces be created on a raw device.
    Thanks & regards,
    Sanjeev

    Thanks for the response. Please help me further.
    About the Script - It asks for the path for creating DIR and uses shell command to create DIR. Later same path and DIR name is used to create Oracle DIR. Now in place of absolute path raw device name is passed. The same script is also used for creating tablespaces and schema.
    There is second script that is .sql script that creates external table in the newly created schema. All this has been working fine on single instance Oracle server. we have tested many times but fails in RAC environment when we use raw device.
    Question is - If I use filesystem will the external table's flat files and Directories be accessible to all the instances.
    I have one application written in java that would be clustered and running on these oracle servers. This application would be accessing those external tables and their flat files. Will there be a problem accessing these flat files accross the instances.
    Regards,
    Sanjeev.

  • Create PDF based on spool ID and store on content server

    Hi all,
    I need to create a PDF file from a spool ID and store this in a repository on the content server (archive). How can I do this <b>without creating a physical file on the local workstation</b>?
    All helpful answers will be rewarded!
    - Mari Virik

    Hi Mari,
    This is a sample report pgm which create pdf file from spool id :
    PARAMETER: p_email1 LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_delspl  AS CHECKBOX.
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    Write statement to represent report output. Spool request is created
    if write statement is executed in background. This could also be an
    ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
    Alternative way could be to submit another program and store spool
    id into memory, will be stored in sy-spono.
    *submit ZSPOOLTOPDF2
           to sap-spool
           spool parameters   %_print
           archive parameters %_print
           without spool dynpro
           and return.
    Get spool id from program called above
    IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
        PERFORM convert_spool_to_pdf.
        PERFORM process_email.
        if p_delspl EQ 'X'.
          PERFORM delete_spool.
        endif.
        IF sy-sysid = c_dev.
          wait up to 5 seconds.
          SUBMIT rsconn01 WITH mode   = 'INT'
                          WITH output = 'X'
                          AND RETURN.
        ENDIF.
      ELSE.
        SKIP.
        WRITE:/ 'Program must be executed in background in-order for spool',
                'request to be created.'.
      ENDIF.
          FORM obtain_spool_id                                          *
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
          FORM get_job_details                                          *
    FORM get_job_details.
    Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    ENDFORM.
          FORM convert_spool_to_pdf                                     *
    FORM convert_spool_to_pdf.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = gd_spool_nr
                no_dialog                = c_no
                dst_device               = c_device
           IMPORTING
                pdf_bytecount            = gd_bytecount
           TABLES
                pdf                      = it_pdf_output
           EXCEPTIONS
                err_no_abap_spooljob     = 1
                err_no_spooljob          = 2
                err_no_permission        = 3
                err_conv_not_possible    = 4
                err_bad_destdevice       = 5
                user_cancelled           = 6
                err_spoolerror           = 7
                err_temseerror           = 8
                err_btcjob_open_failed   = 9
                err_btcjob_submit_failed = 10
                err_btcjob_close_failed  = 11
                OTHERS                   = 12.
      CHECK sy-subrc = 0.
    Transfer the 132-long strings to 255-long strings
      LOOP AT it_pdf_output.
        TRANSLATE it_pdf_output USING ' ~'.
        CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
      ENDLOOP.
      TRANSLATE gd_buffer USING '~ '.
      DO.
        it_mess_att = gd_buffer.
        APPEND it_mess_att.
        SHIFT gd_buffer LEFT BY 255 PLACES.
        IF gd_buffer IS INITIAL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
          FORM process_email                                            *
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    perform send_email using p_email2.
    ENDFORM.
          FORM send_email                                               *
    -->  p_email                                                       *
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
      REFRESH it_mess_bod.
    Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
          FORM delete_spool                                             *
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
      ld_spool_nr = gd_spool_nr.
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables it_message
                                              it_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
    data:   t_packing_list like sopcklsti1 occurs 0 with header line,
            t_contents like solisti1 occurs 0 with header line,
            t_receivers like somlreci1 occurs 0 with header line,
            t_attachment like solisti1 occurs 0 with header line,
            t_object_header like solisti1 occurs 0 with header line,
            w_cnt type i,
            w_sent_all(1) type c,
            w_doc_data like sodocchgi1.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = it_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    <b>and then use archiving object to store the photo i have explained you as an example</b>
    You have to create a content repository "A2" or another . You have to follow then next steps :
    Create a content repository with storage type FILE archive.
    Tcode     OAC0
    IMG:      Basis Components  Basis Services  SAP Archive Link  Basic Settings  Maintain content repositories
    (Embedded image moved to file: pic00041.pcx)
    Swap from display to amend. Select a current entry and 'copy' or just hit 'create'. Then select .
    (Embedded image moved to file: pic18467.pcx)
    Then fill in the details as below:
    Choose a two char name
    Set DocArea to be 'Archive Link'
    Storage type FILE archive (see Note below on how to get this!)
    Choose Version no. 0031
    Enter the path name where the photos are to be loaded from. Note this is for loading only. When the photos are linked into the sap system (see later), actually, SAP takes a 'copy' and stores it elsewhere. The path may only need to be entered to 'Arch.path', but entering to all three doesn't seem to hurt.
    Note on storage type:
    Storage type 'FILE archive' may not be in the dropdown list, and F4 (poss entries) may not work! If this is the case, click on the field Storage type (left mouse button) and then click the right mouse button. Choose Possible entries and a full list of all
    possible storage types is shown. FILE archive is entry number 08 and then
    Check which content repository (Archive) is linked to document type HRICOLFOTO in object type PREL.
    Tcode     OAC3
    Table     TOAOM_C
    IMG:      Basis Components  Basis Services  SAP Archive Link  Basic Settings  Maintain Links
    (Embedded image moved to file: pic06334.pcx)
    Set the 'Content R' field to the one you've just set in the step above.
    Note the Ret.per. field is the retention period for the photo in MONTHS. (so the default is 833 years and 3 months!)
    Now you can link the photo to the employee.
    <b>Pls reward pts if found usefull :)</b>
    Regards
    Sathish

Maybe you are looking for