CSAP_MAT_BOM_MAINTAIN  Alternative ?

Hi Friends ,
I would like to know if there is a BAPI i can use instead of CSAP_MAT_BOM_MAINTAIN. I want to try using a BAPI because this function module is causing change in  the ECM number of the other vairant BOMS which were not intended to be changed .
Thank you ,
Hari

Hi Hari,
check in SE37 by doing a F4 on BOMUPD* u will a couple of direct update FM's. But i think they will all update the ECM number.
Try ur luck.
Cheers
VJ

Similar Messages

  • Create Bom with alternative using CSAP_MAT_BOM_MAINTAIN

    Hi all,
    I am trying to create a new alternative BOM and thought I had to use the function CSAP_MAT_BOM_MAINTAIN. Creating new BOMs with CSAP_MAT_BOM_CREATE works as well as maintaining them with CSAP_MAT_BOM_MAINTAIN, but I fail in creating a new alternative BOM. In the function
    CS_DI_HEADER_OBJECT_CHECK (called within the maintain-function ) it says (close to the failure )
    "*Anlegen von Alternativen über CSAP nicht erlaubt"
    "creation of alternative using csap not allowed" ....
    Well, sounds like I am using the wrong function, but which should I use instead ???
    Thanx in advance,
    Karsten

    Hi,
    Use : CS_BI_BOM_CREATE_BATCH_INPUT1 To Create a new BOM or New Alt. BOM.
    Use : CS_BC_BOM_CHANGE_BATCH_INPUT to maintain the BOM.

  • Error while creating BOM with FM CSAP_MAT_BOM_MAINTAIN

    Hi All,
    While creating the bom with the FM "CSAP_MAT_BOM_MAINTAIN" using change number i am getting the below error message.
    " Processing of this object is not supported with change number."
    Please help me out.
    Regards
    Suresh

    call function 'CSAP_MAT_BOM_MAINTAIN'
      exporting
        material                 = material
        plant                    = plant
        bom_usage                = usage
        alternative              = alternat
        valid_from               = y_date
    *   CHANGE_NO                =                   "<----Have u used this field for creating ?
    *   REVISION_LEVEL           =
        i_stko                   = l_stko
    *   FL_NO_CHANGE_DOC         = ' '
        fl_commit_and_wait       = 'X'
        fl_bom_create            = 'X'
        fl_new_item              = ' '
        fl_complete              = ' '
    * IMPORTING
    *   FL_WARNING               =
    *   O_STKO                   =
    CSAP_MAT_BOM_CREATE would be an ideal one for creation and CSAP_MAT_BOM_MAINTAIN for change
    Regards,
    Mithun Shetty.

  • Error in Creating a BOM / CSAP_MAT_BOM_MAINTAIN

    hi,
    i need to create multiple bom alternatives in my development. i try using CSAP_MAT_BOM_MAINTAIN for this purpose.
    even after i give all the inputs and flags necessary for creating a new bom, i am getting an error stating that bom already exist for....when i go and check MAST table, for the same material, plant and bom usage... no such alternative exist.
    i am unable to proceed further. can anyone help me in this regard? thanks in advance.

    friend... you are right.
    CSAP_MAT_BOM_MAINTAIN is used to create only one alternative bom. but this can be any number from 01 to 99. if any alternative bom exist for the same combination of material, plant and bom usage... then you cannot create any more alternative bom for the above mentioned combination. this is because... this function module checks MAST table before proceeding with creation. while checking MAST, it considers only material, plant and bom usage. alternative bom is left out here. but the real fact is... alternative bom should be also considered for uniqueness of bom while checking MAST. all these issues are only during bom creation, but the same function module works perfect during bom maintenance.
    CSAP_MAT_BOM_CREATE is also used to create only one alternative bom. but this can be only one number - 01 (default). but, you cannot maintain a bom using this function module. you need to use CSAP_MAT_BOM_MAINTAIN for bom maintenance.
    to create any number of alternative bom for a material, plant and bom usage combination... you need to use the function module BAPI_MATERIAL_BOM_GROUP_CREATE. but... you cannot maintain any bom or create object dependencies for line items using this function module.
    summary:
    to create a bom.. use BAPI_MATERIAL_BOM_GROUP_CREATE
    to read a bom.. use CSAP_MAT_BOM_READ
    to maintain a bom.. use CSAP_MAT_BOM_MAINTAIN.
    to create object dependency.. use CSAP_MAT_BOM_OPEN , CSAP_BOM_ITEM_MAINTAIN , CSAP_MAT_BOM_CLOSE.

  • CSAP_MAT_BOM_MAINTAIN does not update records in 3.0 Version ??

    Dear Friends,
    I am working on 3.0F Version.I have a requirement where when there is an update in the BOM from the 3rd party system, that changed field or quantity should be updated in the BOM.
    I tried using CSAP_MAT_BOM_MAINTAIN and when I enter the material Number,Plant and BOM Usage...the FM goes to a Short Dump....
    '' ABAP/4 runtime error   CALL_FUNCTION_CONFLICT_LENG
    The call to the function module "CSAP_MAT_BOM_MAINTAIN" is incorrect:
    In the function module interface, you can specify only
    fields of a specific type and length under "T_STPO".
    Although the currently specified field
    "%_OT_STPO[]" is the correct type, its length is incorrect.''
    But I've tried to use the same Function Module in ECC 5.0 and it works perfectly fine and I am able to update the records.
    Did anybody face a similar problem with 3.0 Version ??How to rectify this ??
    Is there any other alternative or a solution for my problem ??
    Please share your thoughts.
    Warm Regards,
    Lakshmi

    HI,
    I know it's a old subject but i just find the solution so to update long text feel the field
    object_id in the table typed csltx_line for all the line you want to put in the header
    with the below value:
    * object_id = 0: Stücklistentext (STZU)  (-> CS_DI_BOM_UPDATE)
    *           = 1: Alternativentext (STKO)
    *           = 2: Positionstext (STPO)
    Regards

  • It did not insert the materials in the BOM using 'CSAP_MAT_BOM_MAINTAIN'

    Hi!
      We developed a ABAP technical maintenance BOM.
      In the program.
      Before, we got current BOM and eliminated all related items.
      Routine below.
         LOOP AT INTO it_stpo wa_stpo.
           MOVE-CORRESPONDING TO wa_stpo wa_stpo_i.
           wa_stpo_i-id_itm_ctg = wa_stpo-item_categ.
           wa_stpo_i-id_item_no = wa_stpo-item_no.
           wa_stpo_i-id_comp = wa_stpo-component.
           wa_stpo_i-fldelete = 'X'.
           APPEND TO wa_stpo_i it_stpo_i.
         ENDLOOP.
         CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
           EXPORTING
             Stuff = pv_matnr
             plant = p_werks
             bom_usage = p_tplis
             Alternative = p_altlis
             VALID_FROM = v_valid_from
             i_stko = pv_wa_stko
            TABLES
              t_stpo = it_stpo_i.
    After , we inserted new materials in the BOM using the same function .
    routine below
       LOOP AT INTO it_tab_i wa_tab_i ins_up_del WHERE = '1 ' OR
                                               ins_up_del = '2 ' .
            wa_stpo_i - item_categ = ' L' .
            wa_stpo_i -component = wa_tab_i - matnr_pri .
            v_menge_i = wa_tab_i - menge ( 9 ) .
            v_menge = v_menge_i / 1000 .
            WRITE TO v_menge wa_stpo_i - comp_qty .
            wa_stpo_i - comp_unit = " KG " .
            wa_stpo_i - issue_loc = " COS " .
            APPEND TO wa_stpo_i it_stpo_i .
          ENDLOOP .
    * Including new materials in the BOM .
          CALL FUNCTION ' CSAP_MAT_BOM_MAINTAIN '
            EXPORTING
              Stuff = pv_matnr
              plant = p_werks
              bom_usage = p_tplis
              Alternative = p_altlis
              VALID_FROM = v_valid_from
              i_stko = pv_wa_stko
            IMPORTING
              fl_warning = v_fl_warning
            TABLES
              t_stpo = it_stpo_i
            EXCEPTIONS
              error = 1
              OTHERS = 2 .
    But the new materials were not inserted.
    Could you help me what is missing in the routine ?
    Thanks.

    Hi!
    We found the problem.
    The problem was in the fields ID_ITM_CTG, ID_ITEM_NO and ID_COMP.
      They were not cleaned when we were inserting  the new materials in the BOM.

  • Running CSAP_MAT_BOM_MAINTAIN with JCo, is it possible?

    Hello,
    I am trying to use CA-PLM BAPI:s by the Java Connector but  CSAP_MAT_BOM_MAINTAIN gives constant exception to my application:
    JCO.AbapException: (126) ERROR: Terminate processing
    At the same time for example BAPI_MATERIAL_SAVEDATA works fine.
    Do You have any ideas what is the problem with the bom function, could it be used by the JCo or is there alternative BAPI for that?
    regards,
    a

    Hello
    seems to me that this error comes from SAP so check if you call the BAPI with the right params (also try in directly in SAP to test BAPI with given parameters in SE37 and see if an ABAP exception is raised)
    See JCO Docs:
    public void execute(JCO.Function function)
        Executes the function on the remote server synchronously
        Parameters:
            function - the function to execute on the remote server
        Throws:
            JCO.AbapException - thrown if something went awry in the called function.
            JCO.Exception - thrown if something went wrong during communication, marshalling, etc.
    unfortunately all exception from JCo are derived from RuntimeException, so they are unchecked and the Java compiler doesn't force you to catch them.
    try something like this
    JCO.Client client = .....
    try {
      client.execute (function)
    } catch (JCO.AbapException ex) {
      System.out.println ("Exception raised by SAP System");
      System.out.println (ex.getKey() + ": " + ex.getMessage());
    Regards
    franz
    reward points if useful

  • Error in creating Alternative BOM using IDOC_INPUT_BOMMAT

    Hi all,
    I am trying to create an Alternative BOM using IDoc BOMMAT03.I have checked this IDoc will use FM IDOC_INPUT_BOMMAT inside.
    In this function module, it is using FM CSAP_MAT_BOM_CREATE and CSAP_MAT_BOM_MAINTAIN to create and change.
    This FM is allowing to create an Alterative BOM = '01' but it is not creating for Alt BOM = '02'.
    Can anyone provide inputs on this .
    Regards
    Sathibabu

    Hai Guy,
    use below code for Alternate BOM with sub item .
    Part 1.
    DATA: bom_header     LIKE cad_bicsk,
          bom_item       type table of  cad_bom_item WITH HEADER LINE,
          bom_sub_item   type table of cssubitem WITH HEADER LINE,
          dms_class_data type table of cls_charac  WITH HEADER LINE,
          sap_field_data type table of rfcdmsdata  WITH HEADER LINE,
          e_return       LIKE cad_return-value,
          e_message      LIKE message-msgtx,
          e_message_len  LIKE cad_return-message_len.
    DATA v_ITEM  TYPE I.
    TYPES : BEGIN OF ty_data,
            level TYPE i,
            matnr TYPE cad_bicsk-matnr,
            werks TYPE werks_d,
            usage TYPE stlan,
            qty   TYPE cad_bom_item-menge,
            fqty type fmeng, " Quantity is Fixed
            sub_upmng type upmng,
            text type cad_bicsk-ztext,
            END OF ty_data.
    DATA : it_data TYPE TABLE OF ty_data ,
           wa_data TYPE ty_data.
    **---selection screen
    PARAMETERS:p_file TYPE ibipparms-path OBLIGATORY.
    **---f4 help for the file from PC
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      PERFORM get_f4help.
    *--start-of-selection .
    START-OF-SELECTION.
    PERFORM upload_file_itab.
    CLEAR: bom_header, bom_item, bom_sub_item.
    REFRESH: bom_item, bom_sub_item.
    data : v_lineitem type SPOSN value '0000',
           v_slineitem type SPOSN value '0'.
      LOOP AT it_data INTO wa_data.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = wa_data-matnr
        IMPORTING
          output = wa_data-matnr.
      IF wa_data-level = 0.
    * fill BOM header
    clear  bom_header.
          bom_header-matnr = wa_data-matnr. "'000000000200000016'.
    *      bom_header-stlal = '1'. " Alternative Bom
          bom_header-werks = wa_data-werks. "'1000'.
          bom_header-stlan = wa_data-usage."'3'.
          bom_header-bmeng = wa_data-qty.
          bom_header-cadkz = 'X'.
          bom_header-stktx = wa_data-text.
    *      bom_header-ztext = wa_data-text.
          bom_header-datuv = '01.10.2010'.
    ELSEIF wa_data-level = 1.
    * fill item
    v_lineitem = v_lineitem + 10.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = v_lineitem
        IMPORTING
          output = v_lineitem.
    *    bom_item-upskz     = 'X'.     " If We hav the Sub items Enable it.
        bom_item-idnrk     = wa_data-matnr. "'000000000200000017'.
        bom_item-posnr     = v_lineitem.
        bom_item-postp     = 'L'.
        bom_item-menge     = wa_data-qty. "'1'.
        bom_item-fmeng     = wa_data-fqty.
        APPEND bom_item.
        CLEAR: bom_item.
    *** fill sub item
    CLEAR V_ITEM .
    v_slineitem = v_slineitem + 1.
    ELSEIF wa_data-level = 2.
    *  V_ITEM =  V_ITEM + 1.
    *  bom_sub_item-posid = v_slineitem.
    *  bom_sub_item-ebort = 'test'.
    *  bom_sub_item-upmng = wa_data-sub_upmng.
    *  bom_sub_item-uposz =  V_ITEM.
    *  bom_sub_item-uptxt = 'test'.
    *  append bom_sub_item.
    *  clear bom_sub_item.
    ENDIF.
    if wa_data-level = 0.
    else.
    at END OF LEVEL.
    * Call function
      CALL FUNCTION 'CAD_CREATE_BOM_WITH_SUB_ITEMS'
           EXPORTING
                i_bom_header   = bom_header
                i_auto_posnr   = ''
           IMPORTING
                e_return       = e_return
                e_message      = e_message
                e_message_len  = e_message_len
                e_bom_header   = bom_header
           TABLES
                bom_item       = bom_item
                bom_sub_item   = bom_sub_item
                dms_class_data = dms_class_data
                sap_field_data = sap_field_data
           EXCEPTIONS
                 OTHERS         = 1.
      refresh bom_item.
      write : e_message.
      ENDAT.
    ENDIF.
    CLEAR wa_data.
    endloop.

  • Create BOM alternative via BAPI

    How can we create a BOM alternative via BAPI?
    I now use CSAP_MAT_BOM_MAINTAIN but then I get the following error:
    BOM already exists for 1234 W041 9
    I do not want to use batch input.
    Kind regards,
    Lieselot

    Hi,
    U can use the  following BAPI'S
    BAPI_MATERIAL_BOM_GROUP_CREAT
    BAPI_MAT_BOM_EXISTENCE_CHECK
    i hope they solve your purpose!!
    thanks

  • How can I assign points to the alternatives in a question?

    Hi! I am building my first quiz in Captivate and I have this little problem I haven´t been able to solve. I want a make a test that meassures how stress you are att work. It looks like a survey, I´ll have about 20 or more questions with the same type of alternatives, no right or wrong alternatives, but you choose the one you agree the most with. The thing is that i want to give a value point to each alternative and be able to have a score at the end. See the example.
    How often do you feel stressed att work?
    1. never : 0 points
    2. one a week: 2 points
    3. three times a week: 3 points
    4. Everyday: 4 points
    Att the end, the score you get tells you how stressed you are, but instead of showing a result in term of points, you´ll get a text giving you feedback and recomendations for better health. Can I do that in Captivate? I haven´t been able to find a way to do that yet...
    Thanks for any help you can give me!

    Hello,
    Tried putting something together that could be possible, concentrated on the workflow. There will be some repetitive tasks to be done however, problem is that a click box cannot stay for a whole project, which means that a click box gets its proper ID on each slide. Will try to explain, it is up to you to judge if this is acceptable, or if you'd go better with a Flash app.
    Created (for the moment, perhaps you'll need more if p.e. for Q1-Q10 you need a separate result for A and for B, result for Q11-Q20...) two user variables:
    v_AClick     to store the number of clicks on A-option
    v_BClick     to store the number of clicks on B-option
    The results can then be used later on for a condition (did not write it yet).
    Created a first slide with these objects:
    dummy Text Caption 'Option A' (will be replaced later on with question text)
    click box covering up this Text Caption, named it (ID) ClickA1 (this is the tedious part, has to be done for each CB; ClickA2, ClickA3...)
    dummy Text Caption 'Option B' (will be replaced later on with question text)
    click box covering up this Text Caption, named it (ID) ClickB1 (this is the tedious part, has to be done for each CB; ClickB2, ClickB3...)
    imported a 'sign' to be showed after the user clicked into the Library, and put an instance to the right of each Text Caption, those were labeled VinkA and VinkB. Very important: set those instances to 'Show for the entire project', which avoids to have them duplicated to each slide, we will hide and show them as necessary.
    button 'Next' which on Succes jumps to next slide.
    The blue Text Caption was for me, to check if the actions were functioning, shouldn't be there in the end file.
    I created a first Advanced action, labeled it HideVink (sorry for the Dutch, Vink = the green symbol), to be triggered on entering the slide:
    Hide VinkA
    Hide VinkB
    Second/third action, labeled A_Action1/B_Action1 to be triggered by clicking on the ClickA1/ClickB2 with these actions:
    increment v_AClick/v_BClick with 1
    hide the other clickbox, thus ClickB1/ClickA1 to avoid that the user could click on both options
    show AVink/BVink
    Here is an example, action A_Action1
    Those two actions have to be duplicated for each Question slide (A_Action2, B_Action2,....). What has to be changed in the duplicates is only the number of the Click Box, that is why I labeled them to make the process easier.
    Now I duplicated the slide as many times as necessary. The actions for button and entering slide are OK, but the actions for the click boxes have to be adapted (tedious).
    Why did I use 'dummy' Text Captions: I should export (File menu) the Text Captions to a Word-document, change the dummy texts (left column) to the real captions (much easier in one doc) and re-import them into the CP-file.
    That was my homework, as promised. Hope it helps, even if you choose to go the Flash-way after all.
    Lilybiri

  • Alternative Periods in Report Painter

    I'm trying to create a report painter report for labour efficiency, it compares actual labour confirmations to a statistical key figure for payroll hours.
    I have the basic elements, but my problem is this.  We currently run our accounts on a calendar month basis, so we have 12 periods in FI.  This report is required on a weekly basis for each weeks payroll.  Is it possibly to report totals for a given week, when that is not your accounting period?
    I can't see any obvious characterisics that will give me a weekly total of each figure, but I'm wondering if it os possible to define alternative periods (e.g. 52/53 week years ending each sunday for a period, and bring that in as a row characteristic).
    Has anybody managed to achieve anything like this, and if so how?
    Postings can occur anytime in the week, so I don't think posting date is an option, but may be if you can specify ranges that can be logically extrapelated in the report (i.e. Mon-Sun).
    Thanks for any advice on this
    Graham

    Has anybody got any comments or advice on this?
    Graham

  • A semiautomatic alternative to /etc/fstab

    This is probably highly redundant... the chances are, someone will likely say "XYZ does that for you and you can configure it in 5 minutes", but here goes anyways.
    I wanted a simple way to mount the disks in my computer to the same location regardless of where they were in the system (thus via UUID) but what I *didn't* want was to have to copy/type the UUID myself. The following possibly shaky bash script is the result.
    First, however, a (very real-world) demonstration of its functionality!
    /disks/ + ./domount
    Using scriptdir "/disks/.mountscripts".
    Running mount... [ok]
    [Disk ST3250620A_5QE4M336]
    group0-root -> /disks/250gb: [ok]
    38067a33-0556-4cab-a5c5-c96b313bd174 -> /disks/250gb/boot: [ok]
    21D4-2E62 -> /disks/250gb/data: [ok]
    group0-home -> /disks/250gb/home:
    == mount error ==
    mount: wrong fs type, bad option, bad superblock on /dev/mapper/group0-home,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog - try
    dmesg | tail or so
    =================
    [R]etry/Skip [P]artition/Skip [D]isk/[Q]uit? q
    /disks/ + fsck.jfs /dev/mapper/group0-home
    fsck.jfs version 1.1.15, 04-Mar-2011
    processing started: 11/10/2011 20:28:10
    Using default parameter: -p
    The current device is: /dev/mapper/group0-home
    Block size in bytes: 4096
    Filesystem size in blocks: 52099072
    **Phase 0 - Replay Journal Log
    Filesystem is clean.
    /disks/ + ./domount
    Using scriptdir "/disks/.mountscripts".
    Running mount... [ok]
    [Disk ST3250620A_5QE4M336]
    group0-root -> /disks/250gb: (already mounted)
    38067a33-0556-4cab-a5c5-c96b313bd174 -> /disks/250gb/boot: (already mounted)
    21D4-2E62 -> /disks/250gb/data: (already mounted)
    group0-home -> /disks/250gb/home: [ok]
    group0-var -> /disks/250gb/var: [ok]
    partition1.vfat -> /disks/250gb/home/backup/80gb/mnt/partition1.vfat: [ok]
    partition2.vfat -> /disks/250gb/home/backup/80gb/mnt/partition2.vfat: [ok]
    partition3.vfat -> /disks/250gb/home/backup/80gb/mnt/partition3.vfat: [ok]
    partition4.ext3 -> /disks/250gb/home/backup/80gb/mnt/partition4.ext3: [ok]
    data2 -> /disks/250gb/home/backup/32gb-2/mnt/data2: [ok]
    [Disk ST340014A_5MQ4HB90]
    0854-08DE -> /disks/20gb-1/data-1: [ok]
    4846-D7E2 -> /disks/20gb-1/data-2: [ok]
    3070DB1E70DAE99C -> /disks/20gb-1/winnt: [ok]
    38BB-158D -> /disks/20gb-1/pool: [ok]
    [Disk WDC_WD800BB-22J_WD-WCAM9H677098]
    e336c404-fca8-4f2b-9c75-81c22f339741 -> /disks/80gb: [ok]
    4738-E723 -> /disks/80gb/vfat: [ok]
    a827cfa1-08cf-4a24-a989-aae94ea0801b -> /disks/80gb/boot: [ok]
    7bb5df89-3a90-4c92-8aa7-a94271806087 -> /disks/80gb/var: [ok]
    09b652b7-4f5e-4895-8464-6f972a44fdd6 -> /disks/80gb/home: [ok]
    a2534aa6-b70f-442d-805e-365ee626d4be -> /disks/80gb/tmpspace: [ok]
    4871-993D -> /disks/80gb/tmpspace2: [ok]
    386a2a83-22e2-425c-bd48-cb0a1fad8a87 -> /disks/80gb/pool: [ok]
    /disks/ +
    Here's the script! (I can pastebin it if neccessary)
    #!/bin/bash
    # ohai from i336 :P <[email protected]>
    # Oct-Nov 2011
    # Public domain, no warranty. Be sure to use the "t" flag on the first run!
    # This program has two modes: scan mode and run mode.
    # Configuration
    # =============
    # You first need to create/go into the directory you want to mount your disks
    # in, such as /mnt (I use /disks), and create the subdirectory ".mountscripts", or
    # alternatively "programname-mountscripts" (the second directory bearing the
    # name of the program/symlink, a simple mechanism to implement some flexibility).
    # You can substitute any created symlinks whereever "./domount" is mentioned.
    # The existance of this directory indicate that this is the work directory.
    # (For added flexibility, the program will look for the second directory, the
    # one bearing its name, first, then fall back on ".mountscripts" if this is not
    # found.)
    # Scan Mode
    # =========
    # After creating this directory for the first time you will want to run
    # "./domount s" to generate the mountscripts into the mountscript directory
    # (which is selected as specified above).
    # Run Mode
    # ========
    # At this point, go into the mountscript directory, open all the files you find
    # there in a text editor, and add in the mountpoints you want to use after the
    # UUID parameter to 'partop' (an internal function defined in this file for the
    # scripts).
    # ** The first time you simply MUST run "./domount t" in order to see that the
    # 'mount' commands are correct! **
    # After this is done, run "./domount" and it will go ahead and mount the disks.
    # Run "./domount u" and it will unmount everything. (No options exist for
    # individual partitions as yet).
    # Limitations
    # ===========
    # * If you use domount to mount loopback images inside real partitions and the
    # real partitions are also mounted by domount, well, domount will try to
    # unmount them in the same order as when it mounts... and it will break.
    # Simple solution: skip however many real [p]artitions you have, then
    # re-run domount again. :)
    # * If you change a disk (eg add a partition), well, you'll have to delete the
    # file for that disk, re-scan (domount will not touch the other scripts) then
    # re-add your partitions back in. This program wasn't really designed to deal
    # with that kind of situation :)
    # * This program does not support LVM partitions - quite frankly, it doesn't
    # even realize such things exist. Thus you will not find any LVM partitions
    # listed in the generated scripts, or any "LVM partitions ignored"
    # messages - indeed, if you only have LVM partitions on a given disk, the
    # resulting syntactically incorrect script will contain an 'if' block with
    # no content and the shell will produce an error.
    toollist=
    needtool=0
    for tool in find lsblk blkid cfdisk xargs grep tail mountpoint; do
    type -P $tool > /dev/null 2>&1
    if [ $? -eq 0 ]; then
    toollist="${toollist} ${tool}"
    else
    toollist="${toollist} [${tool}]"
    needtool=1
    fi
    done
    if [ $needtool -eq 1 ]; then
    echo "This program requires the following tools in order to run. Those marked with"
    echo "brackets cannot be found (using \`type') and their containing packages"
    echo "likely need to be installed."
    echo $toollist
    exit 1
    fi
    sizes=(bytes KB MB GB TB)
    progname=$(basename $0)
    if [ -d ".mountscripts" ]; then
    scriptdir="$(pwd)/.mountscripts"
    elif [ -d ".${progname}-mountscripts" ]; then
    scriptdir="$(pwd)/.${progname}-mountscripts"
    fi
    if ([[ ! -d "${scriptdir}" ]] && [[ "$1" != "s" ]]) || [[ "$1" == "h" ]]; then
    cat << EOF
    usage: $0 [s] [t]
    s = scan
    t = test run (USE THIS THE FIRST TIME AFTER YOU HAVE DONE A SCAN)
    EOF
    exit 1
    fi
    if [[ "$1" = "s" ]]; then
    echo -n "Scanning disk tables... (by name)"
    parttable=(); while IFS= read -r line; do parttable+=("$line"); done < \
    <(find /dev/disk/by-id/ -name "scsi-SATA*" -name "*-part*" -type l | xargs stat -L -c "%t-%T %n")
    echo -n ", (by UUID)"
    uuidtable=(); while IFS= read -r line; do uuidtable+=("$line"); done < \
    <(find /dev/disk/by-uuid/ -type l | xargs stat -L -c "%t-%T %n")
    echo -ne " [ok]\nRunning blkid..."
    blkidtable=(); while IFS= read -r line; do blkidtable+=("$line"); done < \
    <(blkid)
    echo -ne " [ok]\nRunning lsblk (uno momento)..."
    lsblktable=(); while IFS= read -r line; do lsblktable+=("$line"); done < \
    <(lsblk -bro name,size,fstype,model | grep -v group | tail -n +2)
    echo -e " [ok]\n"
    if [ ${#parttable[@]} -ne ${#uuidtable[@]} ]; then
    echo 'Something is very wrong with either this program'
    echo 'or your disk configuration. O.o'
    exit 1
    fi
    echo -e "Using scriptdir \"${scriptdir}\".\n"
    echo -ne "\e[1GCompiling mapping table... [ ]\e[?25l"
    max=$[${#parttable[@]}*${#parttable[@]}]
    runindex=0
    for ((i = 0; i < "${#parttable[@]}"; i++)); do
    partsplit=(${parttable[$i]})
    devok=0
    devname="$(readlink -f ${partsplit[1]})"
    partsize=
    for uuid in "${uuidtable[@]}"; do
    uuidsplit=($uuid)
    c=$[((runindex*43)/$[max-1])]
    echo -ne "\e[29G"
    if [ $c -gt 0 ]; then eval \printf "%.s#" {0..$c}; else echo -n '.'; fi
    if [ $c -lt 43 ]; then eval \printf "%.s." {$[c+1]..43}; fi
    ((runindex++))
    if [[ "${partsplit[0]}" = "${uuidsplit[0]}" ]]; then
    partlabel=
    devok=1
    for entry in "${blkidtable[@]}"; do
    if [[ "${entry:0:$[${#devname}+9]}" != "${devname}: LABEL=\"" ]]; then continue; fi
    partlabel="${entry:$[${#devname}+9]}"
    partlabel=$(echo -n $(echo $partlabel | cut -d'"' -f1))
    done
    for entry in "${lsblktable[@]}"; do
    entry=($entry)
    if [[ "/dev/${entry[0]}" != "$devname" ]]; then continue; fi
    partsize=${entry[1]}
    parttype=${entry[2]}
    done
    if [ ! partsize ]; then
    echo "$0: error: cannot determine partition size for $devname"
    exit 1
    fi
    devline="${partsplit[1]:26} ${uuidsplit[1]:18} ${partsize} ${parttype}${partlabel:+ $partlabel}"
    map[${#map[@]}]="$devline"
    fi
    done
    if [ $devok -eq 0 ]; then
    checkparttable[${#checkparttable[@]}]="${parttable[$i]#* }"
    fi
    done
    echo -e "\e[?25h\e[75Gdone.\n"
    if [[ ${#checkparttable[@]} -gt 0 ]]; then
    cat << EOF
    Warning: The following partitions do not have matching UUID entries
    in /dev/disk/by-uuid/.
    Linux seems to be quite smart, and won't list UUIDs for LVM
    members, partitions \`mount' cannot mount without the -t flag,
    or extended partition headers, but /dev/disk/by-id/ will still
    list them. So these are probably not a problem but may still
    warrant a double-check; if these contain valid filesystems you
    will need to insert them manually since their UUIDs cannot be
    calculated.
    EOF
    for partition in "${checkparttable[@]}"; do
    echo " >> $(readlink -f $partition) (/dev..by-id/${partition:26})";
    done
    echo
    fi
    find /dev/disk/by-id/ -name "scsi-SATA*" -not -name "*-part*" -type l | while read disk; do
    scriptfile="${scriptdir}/${disk:26}.mount.sh"
    rm -f "${scriptfile}"
    if [ ! -f "${scriptfile}" ]; then
    echo -ne "No mountscript found for disk ID \"${disk:26}\", creating one...\nRunning cfdisk... "
    cfdtable=(); while IFS= read -r line; do cfdtable+=("$line"); done < \
    <(cfdisk -Ps $disk | grep -v "Free Space" | grep -v "Unusable" | tail -n +6)
    echo -ne "[ok]\nRunning smartctl... "
    smartctlinfo="$(smartctl -i $disk)"
    diskdevname="$(readlink -f ${disk})"
    diskdevname=${diskdevname:5}
    disk="${disk:26}"
    disktable[${#disktable[@]}]="${disk}"
    tmp=
    diskparttable=
    for entry in "${lsblktable[@]}"; do
    entry=($entry)
    if [[ "${diskdevname}" != "${entry[0]}" ]]; then continue; fi
    devicename=$(echo -n $(echo "${entry[@]}" | cut -d' ' -f3-))
    done
    echo -e "# Script generated by domount at $(date +'%T on %D (MM/DD/YY)') for disk \"${devicename}\"\n" > "${scriptfile}"
    echo '# '$(echo "$smartctlinfo" | grep '^Model Family:') >> "${scriptfile}"
    echo '# '$(echo "$smartctlinfo" | grep '^Device Model:') >> "${scriptfile}"
    echo -e '# '$(echo "$smartctlinfo" | grep '^User Capacity:')"\n" >> "${scriptfile}"
    for part in "${map[@]}"; do
    if [[ "${part:0:$[${#disk}+1]}" != "${disk}-" ]]; then continue; fi
    diskparttable="${diskparttable}${part}\n";
    done
    mapfile -t diskparttable < <(echo -ne "${diskparttable%%\\n}" | sort -n -k1.$[${#disk}+6]n)
    echo -ne "if diskexists ${disk}; then\n\t\n" >> "${scriptfile}"
    for part in "${diskparttable[@]}"; do
    partsplit=($part)
    parttype=
    for line in "${cfdtable[@]}"; do
    line=($line)
    if [[ "X${partsplit[0]:${#disk}+5}X" != "X${line[0]}X" ]]; then continue; fi
    parttype="${line[1]}"
    done
    if [[ "X${parttype}X" = "XX" ]]; then
    echo "$0: error: Cannot parse cfdisk output"
    rm -f "${scriptfile}"
    exit 1
    fi
    echo -ne "\t# Partition: #${partsplit[0]:${#disk}+5} (${parttype}, ${partsplit[3]}" >> "${scriptfile}"
    if [[ "${partsplit[3]}" = "swap" ]]; then
    echo -n " - Skipping" >> "${scriptfile}"
    fi
    echo -n "); Size: " >> "${scriptfile}"
    sizeidx=0
    size=${partsplit[2]}
    while [ $size -gt 0 ]; do
    sizetext="${size}${sizes[$sizeidx]} ${sizetext}"
    size=$(($size/1024))
    ((sizeidx++))
    done
    sizetext=($sizetext)
    for ((i = 0; i < 2; i++)); do
    if [ $i -eq 1 ]; then echo -n ' (' >> "${scriptfile}"; fi
    if [[ "${sizetext[$i]: -1:1}" = "s" ]]; then
    echo -n "${sizetext[$i]:0:-5} bytes" >> "${scriptfile}"
    else
    echo -n "${sizetext[$i]:0:-2} ${sizetext[$i]: -2:2}" >> "${scriptfile}"
    fi
    if [ $i -eq 1 ]; then echo -n ')' >> "${scriptfile}"; fi
    done
    if [[ "X${partsplit[4]}X" != "XX" ]]; then
    echo -n "; Label: \"" >> "${scriptfile}"
    echo $(echo -n "${part}" | cut -d' ' -f5-)"\"" >> "${scriptfile}"
    else
    echo >> "${scriptfile}"
    fi
    if [[ "${partsplit[3]}" != "swap" ]]; then
    echo -e "\tmountpart /dev/disk/by-uuid/${partsplit[1]} \n\t" >> "${scriptfile}"
    else
    echo -e "\t" >> "${scriptfile}"
    fi
    done
    echo "fi" >> "${scriptfile}"
    echo -e "[ok]\nSuccess!\n"
    #echo ---; cat $scriptfile; echo ---
    else
    echo "Script found for disk ID ${disk}"
    fi
    done
    exit
    fi
    trap 'echo; exit' SIGINT
    echo -ne "Using scriptdir \"${scriptdir}\".\nRunning mount..."
    mapfile -t mounttable < <(mount)
    echo -e " [ok]"
    function spin() {
    trap 'echo -e "\e[?25h"' SIGINT SIGQUIT SIGKILL
    echo -ne "\e[?25l"
    if [[ $unicode -eq 1 ]]; then s=$(printf \\u2580\\u259C\\u2590\\u259F\\u2584\\u2599\\u258C\\u259B); m=8; d=0.03; else s='/-\|'; m=4; d=0.07; fi
    ("$@" & pid=$! ; c=1; while ps -c $pid 2>&1>/dev/null; do echo -ne "\e[s${s:c:1} \e[u"; c=$[c+1]; test $c -eq $m && c=0; sleep $d; done)
    echo -ne "\e[?25h"
    trap SIGINT SIGQUIT SIGKILL
    function diskexists {
    disk=/dev/disk/by-id/scsi-SATA_${@}
    if [[ ! -L $disk ]]; then
    echo "(Disk $0 is not installed)"
    else
    echo "[Disk ${1}]"
    fi
    function partop {
    if [[ $mode -eq 1 ]]; then
    while true; do
    echo -n "Unmounting ${1##*/}... "
    if ! mountpoint > /dev/null 2>&1 $2; then
    echo "(Not mounted, or not a mountpoint)"
    break;
    fi
    if [ ! -d $2 ]; then
    echo "error: Not a directory!"
    break
    fi
    cmd="umount $1"
    if [[ ! $testmode ]]; then
    output="$(${cmd} 2>&1)"
    err=$?
    else
    echo "{would run: ${cmd}} "
    fi
    if [[ $err = 0 ]]; then
    if [[ ! $testmode ]]; then echo "[ok]"; fi
    return
    else
    echo -e "\n== umount error =="
    echo -n "${output}"
    echo -e "\n=================\n"
    c=X;
    while [[ ! $c =~ (R|r|P|p|D|d|Q|q) ]]; do read -sn1 -p"[R]etry/Skip [P]artition/Skip [D]isk/[Q]uit? " c; echo $c; done
    echo
    case $c in
    D|d) skipdisk=1; break ;;
    P|p) break ;;
    Q|q) exit ;;
    esac
    fi
    done
    else
    if [[ $skipdisk = 1 ]] && [[ $newdisk = 0 ]]; then return; fi
    err=0
    skipdisk=0
    newdisk=0
    while true; do
    echo -n "${1##*/} -> $2: "
    if mountpoint > /dev/null 2>&1 $2; then
    echo "(already mounted)"
    break;
    fi
    if [[ $testmode == 0 ]]; then echo echo -n "Mounting"; fi
    if [ ! -d $2 ]; then
    echo -n " (creating dir $2"
    cmd="mkdir -p $2 2>&1"
    if [[ ! $testmode ]]; then
    output="$(eval $cmd)"
    err=$?
    else
    echo -n " {would run: $cmd}"
    fi
    echo -n ') '
    fi
    if [[ $err = 0 ]]; then
    if [[ $testmode == 0 ]]; then echo -n '... '; fi
    cmd="mount $@"
    if [[ ! $testmode ]]; then
    output="$(${cmd} 2>&1)"
    err=$?
    else
    echo "{would run: ${cmd}} "
    fi
    else
    echo
    fi
    if [[ $err = 0 ]]; then
    if [[ ! $testmode ]]; then echo "[ok]"; fi
    return
    else
    echo -e "\n== mount error =="
    echo -n "${output}"
    echo -e "\n=================\n"
    c=X;
    while [[ ! $c =~ (R|r|P|p|D|d|Q|q) ]]; do read -sn1 -p"[R]etry/Skip [P]artition/Skip [D]isk/[Q]uit? " c; echo $c; done
    echo
    case $c in
    D|d) skipdisk=1; break ;;
    P|p) break ;;
    Q|q) exit ;;
    esac
    fi
    done
    fi
    if [[ $1 = "u" ]]; then mode=1; else mode=0; fi
    if [[ $1 = "t" ]]; then testmode=1; fi
    scripts=(${scriptdir}/*.mount.sh)
    for ((i = 0; i < ${#scripts[@]}; i++)); do
    newdisk=1
    . ${scripts[$i]}
    if (($i < ${#scripts[@]} - 1)); then echo; fi
    done
    echo -ne "\e[?25h"
    Hopefully someone else finds this helpful. I am aware of udev/automount; that was overkill, since the disks are always installed, and I don't need a system whose focus is on-the-fly detection of newly inserted media of whatever kind.
    -i336
    Last edited by i336 (2011-11-10 04:42:08)

    Thanks. I might use it soon...
    Does it automatically make folders named after the volume labels? And does it handle the conversion of spaces and non-alphanumeric characters to octal codes?
    I could read the script but it would be faster for everyone reading, if you leave the answer as a reply.
    I also think that there should be some major work done on modernizing the fstab, either by replacing it with a better implementation of file system mounting or changing the file structure and adding in better handling of non-alphanumerics. I don't want to have to look up a stupid octal table every time I type in my labels.

  • Adobe Creative Cloud can't signin  is there alternative to downloading these programs?

    I just purchased Adobe Creative Cloud and when went to sign in all it would do is sign me out in which I never got to sign in lol is there alternative way to download this software as I have Photoshop and Lightbloom

    Finally, after- how long? - two months? I have uploaded the new Creative Cloud. Only to find that all the programs have been upgraded from CS6 to CC.
    This ranks as the worst piece of customer-relations I've ever come across. Even though I asked for instructions the Staff member dealing with me got fed-up and just dumped me.
    I kept trying - and today - finally I got it fixed.
    It took 20 minutes to download, at 20Mbps! There were no intermediate instructions, I wasn't told what was happening. Suddenly the Install screen disappeared - the new Creative Cloud didn't open, I had to go find it.
    Adobe - this is not good. I suggest you find the boss of this team and quietly boot them out of the door.

  • Lync Reverse Proxy Alternatives

    When migrating from OCS 2007 to Lync 2010, we balked Microsoft’s recommendation to deploy Forefront Threat Management Gateway (or ISA) just to get the reverse proxy services. 
    TMG is way too expensive and complex for such a limited, simple use case.
    I didn't find much information on what people are using as free alternatives to ISA/TMG, so I decided to post this discussion in case there are others out there who are interested.
    We decided to use Apache 2.2 on Windows Server 2008 R2. 
    Here's how we configured it:
    Read here to understand what features require a reverse proxy, and follow the steps to configure your FQDNs, Network Adapters and (maybe) obtain an SSL Certificate for the reverse proxy. 
    http://technet.microsoft.com/en-us/library/gg398069.aspx
    Download and install the latest stable release of Apache with OpenSSL on your reverse proxy server. 
    http://httpd.apache.org/download.cgi
    We're using the same certificate on the reverse proxy that we use on our front end server (it has the appropriate SANs), so we need to convert it to PEM format for use with Apache:
    Use the Certificates MMC on your front end server to export the certificate and include the private key.
    Transfer the resultant .pfx file to your reverse proxy server.
    Use OpenSSL to convert your .pfx file to PEM:
    openssl pkcs12 -in c:\pathto\yourcert.pfx -out c:\pathto\yourcert.pem –nodes 
    Separate the private key from the certificate using notepad: 
    Open the new .pem file and cut the text from the beginning of the file through the end of the “----END RSA PRIVATE KEY----“ tag. 
    Save that text to a new file named
    yourcert.key. 
    Save
    yourcert.pem, which should now only include the certificate.
    Copy (or move) the certificate and private key to the Apache configuration directory. We like to use: C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\ssl
    for storing the certificates.
    Edit httpd.conf (typically in
    C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf) to enable and configure the proxy and SSL features:
    (See  http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
     for more information on each directive)
    Uncomment the following lines, which will enable proxy and SSL:
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule ssl_module modules/mod_ssl.so
    Include conf/extra/httpd-ssl.conf
    Add the following lines to configure reverse proxy behavior:
    #Be a reverse proxy, not a forward proxy
    ProxyRequests Off
    #Accept requests from any client to any URL
    <Proxy *>
    Order Deny,Allow
    Allow from all
    </Proxy>
    #Set the network buffer to improve throughput
    ProxyReceiveBufferSize 4096
    #Configure the Reverse Proxy to forward all requests to your front end server on 4443
    ProxyPass / https://yourfrontend.domain.com:4443/
    ProxyPassReverse / https://yourfrontend.domain.com:4443/
    #Preserve Host Headers for Lync
    ProxyPreserveHost On
    Optionally, configure logging directives, bindings and server name.
    Save and close httpd.conf
    Edit httpd-ssl.conf (typically in conf\extra):
    Configure the session cache:
    Uncomment:
    SSLSessionCache “dbm:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache”
    Comment out:
    SSLSessionCache “shmcb:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)”
    Locate the <VirtualHost _default_:443> tag and configure the following:
    Add the following directive:
    SSLProxyEngine On
    Configure the path to your SSL Certificate saved in step 3-5 above:
    SSLCertificateFile “C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\ssl\yourcert.pem”
    Configure the path to your private key saved in step 3-5 above:
    SSLCertificateKeyFile “C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\ssl\yourcert.key”
    Optionally, configure the SSLCACertificateFile (you can download the appropriate bundle from your CA).
    Optionally, configure logging directives.
    Save and close httpd-ssl.conf
    Restart the Apache2.2 service
    Configure public DNS records and appropriate firewall rules to allow public http/https traffic to the external interface of your reverse proxy, and to allow the internal interface of
    the reverse proxy to talk to the front end Lync server on 8080 and 4443.
    From an external connection, test connectivity through the reverse proxy:
    Test
    https://dialin.company.com (friendly URL for getting dial-in information, if you’re using voice conferencing)
    Test the Lync Web App by setting up an online meeting and following the URL to join the meeting. 
    You can force the use of the web app by appending ?sl= to the end of the meet.company.com link. 
    See this for more information http://blogs.technet.com/b/jenstr/archive/2010/11/30/launching-lync-web-app.aspx
    Hope this information is helpful and saves some of you some money and trouble.
    Please contact me if you need further clarification or see any mistakes in my notes.
    Best regards,
    Kenneth Walden
    Enterprise Systems Supervisor
    GSD&M
    Austin, TX

    I'd like to thank you for this article.  We were setting up Apache RP for Lync .... needless to say they weren't too excited to learn this new (and highly complex with lots of specific undocumented requirements) Microsoft product.  Anyways, your
    blog saved me a LOT of headache.  I owe you big time. 
    AWESOME JOB. 
    -Greg
    *****EDIT***
    Decided to come back in there and post good information.  We had issues with EXTERNAL and ANONYMOUS users being able to attend a meeting.  The "DIALUP" url was working fine but the "MEETING" url was broken.  On our WFE servers we were getting
    the event error as below.   Turns out that our reverse proxy was not set to "PROXYPRESERVEHOST ON".  Once we put that in there ALL was good.
    Notice that the MEET portion was the only thing that was really broken.  So, if you can get DIALUP to work, but MEET doesn't ... your RP is working to FW the 443 to the 4443 correctly but you're RP is sending the wrong HEADER.  Look for
    http://10.x.x.x/meet/ or soemthing in the event logs. 
    Log Name:      Application
    Source:        ASP.NET 2.0.50727.0
    Date:          11/16/2011 1:26:35 PM
    Event ID:      1309
    Task Category: Web Event
    Level:         Warning
    Keywords:      Classic
    User:          N/A
    Computer:      OneofMyInternalWFEservers.local
    Description:
    Event code: 3005
    Event message: An unhandled exception has occurred.
    Event time: 11/16/2011 1:26:35 PM
    Event time (UTC): 11/16/2011 6:26:35 PM
    Event ID: b2039ecd0a62482284030f62e1e639d8
    Event sequence: 129
    Event occurrence: 28
    Event detail code: 0
    Application information:
        Application domain: /LM/W3SVC/34578/ROOT/meet-1-129658725547585993
        Trust level: Full
        Application Virtual Path: /meet
        Application Path: C:\Program Files\Microsoft Lync Server 2010\Web Components\Join Launcher\Ext\
        Machine name: MYWFE.local
    Process information:
        Process ID: 14204
        Process name: w3wp.exe
        Account name: NT AUTHORITY\NETWORK SERVICE
    Exception information:
        Exception type: HttpException
        Exception message: Server cannot append header after HTTP headers have been sent. 
    Request information:
        Request URL:
    https://FQDN:4443/meet/MyName/456456
        User host address: gatewayIP
        User: 
        Is authenticated: False
        Authentication Type: 
        Thread account name: NT AUTHORITY\NETWORK SERVICE
    Thread information:
        Thread ID: 7
        Thread account name: NT AUTHORITY\NETWORK SERVICE
        Is impersonating: False
        Stack trace:    at System.Web.HttpHeaderCollection.SetHeader(String name, String value, Boolean replace)
       at Microsoft.Rtc.Internal.WebServicesAuthFramework.OCSAuthModule.EndRequest(Object source, EventArgs e)
       at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
    Custom event details:
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="ASP.NET 2.0.50727.0" />
        <EventID Qualifiers="32768">1309</EventID>
        <Level>3</Level>
        <Task>3</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2011-11-16T18:26:35.000000000Z" />
        <EventRecordID>4483</EventRecordID>
        <Channel>Application</Channel>
        <Computer>XXXXXXXXXXXXXXXXXX</Computer>
        <Security />
      </System>
      <EventData>
        <Data>3005</Data>
        <Data>An unhandled exception has occurred.</Data>
        <Data>11/16/2011 1:26:35 PM</Data>
        <Data>11/16/2011 6:26:35 PM</Data>
        <Data>b2039ecd0a62482284030f62e1e639d8</Data>
        <Data>129</Data>
        <Data>28</Data>
        <Data>0</Data>
        <Data>/LM/W3SVC/34578/ROOT/meet-1-129658725547585993</Data>
        <Data>Full</Data>
        <Data>/meet</Data>
        <Data>C:\Program Files\Microsoft Lync Server 2010\Web Components\Join Launcher\Ext\</Data>
        <Data>SNKXS300</Data>
        <Data>
        </Data>
        <Data>14204</Data>
        <Data>w3wp.exe</Data>
        <Data>NT AUTHORITY\NETWORK SERVICE</Data>
        <Data>HttpException</Data>
        <Data>Server cannot append header after HTTP headers have been sent.</Data>
        <Data>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</Data>
        <Data>/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</Data>
        <Data>10.71.1.1</Data>
        <Data>
        </Data>
        <Data>False</Data>
        <Data>
        </Data>
        <Data>NT AUTHORITY\NETWORK SERVICE</Data>
        <Data>7</Data>
        <Data>NT AUTHORITY\NETWORK SERVICE</Data>
        <Data>False</Data>
        <Data>   at System.Web.HttpHeaderCollection.SetHeader(String name, String value, Boolean replace)
       at Microsoft.Rtc.Internal.WebServicesAuthFramework.OCSAuthModule.EndRequest(Object source, EventArgs e)
       at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
    </Data>
      </EventData>
    </Event>

  • What is a quick alternative to launching an enterprise DPS app if Apple Store rejects the App? We are under a major deadline and can't wait for Apple. We want to host the app elsewhere. How do we host our DPS app on our client's website?

    What is a quick alternative to launching an enterprise DPS app if Apple Store rejects the App? We are under a major deadline and can't wait for Apple to approve. We want to host the app elsewhere. How do we host our DPS app on our client's website? Thanks.

    Unless I misunderstand the question, you can't do what you're asking to do. Apple doesn't allow you to bypass their store and host public apps on a website. The exception is an enterprise app, which requires an Enterprise account with both Apple and Adobe. This type of enterprise app can be distributed only within the company. If that's what you want to do, you can learn more here:
    Digital Publishing Suite Help | Creating viewer apps for private distribution
    Distributing enterprise iOS viewer applications with Digital Publishing Suite | Adobe Developer Connection
    Another option is to add the development app to several devices and use those for your demo.

Maybe you are looking for

  • Is there a way to see all your new mail from multiple accounts on one page?

    I'm currently receiving emails from four different accounts on my iPhone. I love getting all my emails like this, but it would be even nicer if I didn't have to navigate between all the different accounts.

  • Clip Proxy Resolution

    Hi everyone, Does anyone know if you can change the size (resolution) of the automatically generated clip proxies? FCServer creates 384x216 Quicktimes, which are OK for basic viewing - but on our high res monitors, I'd prefer something a little bigge

  • How to change style/colour of all hyperlinks, globally

    I'd like to change the default style for all hyperlinks (the blue underline thing doesn't work with the template I'm using) but I can't seem to find a way of doing it. It'd be nice if there was a character style that could be changed globally. Also,

  • HT204380 It says my password has changed

    I am trying to get started with Facetime and it says my Apple Id or password has changed so it will not let me sign in.

  • BlackBerry Leather Holster for 9720? Or can I use the one for Q10

    Hey Guys, I am looking for a BlackBerry Leather Holster for my 9720 but I dont find any. What you guys are using? Do you know if the BlackBerry Leather Holster for Q10 work ok with the 9720 or any other BlackBerry Leather Holster that I can use? I re