Adding a segment In Campaign Management

Hi Gurus,
Last night we moved our Business Intelligence repository and catalog with our Marketing Segmentation from Development to Test which went fine.
The problem arises when we try to add a New Segment to our Siiebel Campaign on the new environment.
When attempting to navigate to the location of the segment in Siebel > Site Map > Campaign Management > Design > Segment Trees (also tried Segments to no avail) we get this error:
HTTP Request error during 'Submitting Data SendHTTP request': 'Status code - 400'(SBL-EAI-04117)
Our Outbound Webservices for the Default Analytics Web Server are set up to point to the BI/Marketing server (changed from the /CHANGEME/ that it defaults to). After each was updated we made sure the click the Clear Cache button as stated in the Siebel Marketing Installation and Administration Guide.
We are spinning our wheels trying to figure this out so any help or ideas on what we could be doing wrong would be greatly appreciated!
Regards,
J

The original URL we tried in the Outbound Webservice had not had the Cache cleared. Trying that resolved the issue.

Similar Messages

  • Re: Analytics Segmentation & Siebel campaign management (list management)

    Hi,
    Can any one please tell me what is the difference between the campaign management via the analytics Segmentation & campaign management via the SIEBEL CRM list management.
    Its quite urgent
    Thanks..

    The original URL we tried in the Outbound Webservice had not had the Cache cleared. Trying that resolved the issue.

  • Campaign Management - Retail Promotion Integration

    Hi CRM Gurus,
    I am working on a CRM implementation project for a retail company.
    They already have SAP IS Retail ECC6. They use the SAP IS retail system to create promotions in SAP.
    CRM system will be used for campaign management. The campaigns in CRM need to be linked to promotions in SAP IS Retail.
    Any sugessions on how we can achieve this.
    Cheers
    Barry

    Hi Pratheek,
    I am facing same problem, as you have already idea about this issue can u please
    help me in solving my problem. Actually i need to add 3 fields(WBS element is
    one of them) in standard component CPGOE_DETAILS of CRM. Do i also need
    to make some configuration (in campaign) before adding these fields. I don't have much idea about it but i need the solution at earliest. Therefor if could be possible for you then please reply back on my gmail id. [email protected] else you can also reply on this forum.
    regards
    Subir

  • ICM 7.5 - Campaign manager has crapped out and will not restart

    I completed a simple Dialogic test of the dialer ports early yesterday afternoon in which I then checked my campaign skill group config because I could not get an agent reserved so I added my Dialed Number, Saved, Disabled the campaign then re-enabled it to force the update.  Checked CM and the process window is gone.  We're running 7.5(8).  I've already attempted to cycle the logger processes then rebooted because the process would still not come up.   Anyone come across this before?
    We only have 30 ports and I only tested the first 2 channels.  Attached are the

    The campaign manager looks like crashes due to invalid object. Did anything change?
    23:56:33 la-CampaignManager Trace: Unable to Update the Personal Callback Table; Error Message: 
    23:56:33 la-CampaignManager Trace: Invalid object name 'Personal_Callback_List'.
    23:56:33 la-CampaignManager Trace: Table will likely be created shortly
    23:56:33 la-CampaignManager Trace: Connected to Blended Agent private database
    23:56:33 la-CampaignManager Trace: Created DoNotCall interface object
    23:56:33 la-CampaignManager Trace: Registry Value [CallbackTimeLimit] = [15]
    23:56:33 la-CampaignManager Trace: Registry Value [UnknownCallStatusResetTime] = [60]
    23:56:33 la-CampaignManager Trace: Registry Value [MinimumCallsForHitRate] = [30]
    23:56:33 la-CampaignManager Trace: Registry Value [TimeToResetDailyStats] = [00:30]
    23:56:33 la-CampaignManager Trace: Registry Value [RescheduleCallbacks] = [1]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackMode] = [1]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackTimeToRetryBusy] = [1]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackTimeToRetryNoAnswer] = [20]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackTimeToRetryReservation] = [1]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackMaxAttemptsDefault] = [5]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackTimeToCheckForRecords] = [1]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackDaysToPurgeOldRecords] = [5]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackRecordsToCache] = [20]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackCallNoAnswerRingLimit] = [4]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackSaturdayAllowed] = [0]
    23:56:33 la-CampaignManager Trace: Registry Value [PersonalCallbackSundayAllowed] = [0]
    23:56:33 la-CampaignManager Trace: Registry Value [PendingOverRetryEnabled] = [0]
    23:56:33 la-CampaignManager Trace: Registry Value [DialerDetailEnabled] = [1]
    23:56:33 la-CampaignManager Trace: Registry Value [DialerDetailBufferSize] = [20]
    23:56:33 la-CampaignManager Trace: Registry Value [DialerDetailBufferTimeout] = [5]
    23:56:33 la-CampaignManager Trace: Creating Personal_Callback_List
    23:56:33 la-CampaignManager Fail: Error: Database table [Personal_Callback_List] could not be created, Error [There is already an object named 'PK_PersonalCallbackListID' in the database.
    Could not create constraint. See previous errors.
    23:56:33 la-CampaignManager Trace: CExceptionHandlerEx::GenerateMiniDump -- A Mini Dump File is available at logfiles\CampaignManager.exe_20100415235633304.mdmp
    23:56:33 la-CampaignManager Unhandled Exception: Exception code: 80000003 BREAKPOINT
    Fault address:  7C822577 01:00021577 C:\WINDOWS\system32\ntdll.dll
    Registers:
    EAX:00000000
    EBX:77E68540
    ECX:7FFDF000
    EDX:0049C8D8
    ESI:0012E800
    EDI:7C82F34F
    CS:EIP:001B:7C822577
    SS:ESP:0023:0012DB04  EBP:00000001
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00000246
    Call stack:
    Address   Frame
    7C822577  00000001  DbgBreakPoint+0

  • Error when Adding a segment to an IDOC

    Hi I have added one segment to an IDOC through one user exit and it is giving the error with status 26.
    Here I am pasting the error details,
    The segment E1IDT02 does not occur at the current level of the basic type PEXR2001 (extension ).
    This error can have several reasons:
    The segment E1IDT02 is assigned to a group whose header segment does not occur.
    The segment E1IDT02 does not exist in the syntax description of the basic type PEXR2001 (extension ).
    The sequence of segments in the group in which the segment appears is incorrect.
    Previous errors ('mandatory' segment or group missing) may be due to this error.
    Can any body help me, and let me know what can I do to avoid this.
    Thanks,
    Deepak.

    Actually in the basic type of IDOC, there is no segment with this name. But I am adding this directly in an user exit. Can you tell me what is the actual procedure to add a new segment to the basic type of IDOC
    Thanks
    ravi

  • Problem in adding Custom Provider for Work Management Service

    Hello,
    I'm facing an issue in adding custom provider for work management service. As you are aware, Work management service is a Provider model and we
    can integrate with other systems by adding custom providers. So with that confidence, i have started writing a connector as mentioned below.
    Step - 1: Added new provider xml in the below path
    "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\CONFIG\WorkManagementService\Providers"
    Provider Name: provider.bizagitasklist
    Provider XML Content: 
    <Provider ProviderKey="DAA52AF3-A147-4086-8C0C-82D2F83A089D" OverrideProviderKey="" Assembly="adidas.TaskProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5d6f3e6be60a351b" > </Provider>
    Step -2: Added a class which inherits "IWmaTaskProvider" and implemented the override methods.
    public class BizAgiTaskListProvider : IWmaTaskProvider
    public string LocalizedProviderName
    get { return "BizAgiTaskListProvider"; }
    public string ProviderName
    get { return "BizAgiTaskListProvider"; }
    public Microsoft.Office.Server.WorkManagement.CalloutInfo GetCalloutInfo(IWmaTaskContext context, string taskExternalKey, string locationExternalKey)
    return null;
    public DashboardExtensionInfo GetDashboardExtensionInfo(IWmaBasicProviderContext context)
    return new DashboardExtensionInfo { ClassName = "SP.UI.SharePointExtension" };
    public BulkEditResult HandleBulkEdits(IWmaTaskContext context, BulkEdit updates)
    return null;
    public TaskEditResult HandleTaskEdit(IWmaTaskContext context, BaseAggregatorToProviderTaskUpdate taskUpdate)
    return null;
    public void RefreshSingleTask(IWmaTaskRefreshContext context, string externalKey)
    public void RefreshTasks(IWmaTaskRefreshContext context)
    //context.WriteProviderCustomData(
    Step – 3: Written a class to fetch the tasks from BizAgi System which has method to provide the task data.
    But I’m not able to feed those tasks in the class written in Step – 2 as I’m able to find any method which will take Tasks as Input and I’m not
    sure about the format of tasks.
    I’m able to debug the provider, and the breakpoint hitting in only one method and two properties.
    (LocalizedProviderName, ProviderName, GetDashboardExtensionInfo).
    Can you please help me to proceed further in implementing the above solution?
    Best Regards
    Mahesh

    Hi Mahesh,
    Although the implementation of work management service application is based on the provider model, I reckon the current SP 2013 RTM does not support custom providers. Only SharePoint task lists, Project server and MS Exchange are supported for now.
    Regards,
    Yatin

  • Campaign Management Project in Oracle 8i

    Hi,
    My company is going to develop a Campaign Management System in
    Oracle8i.
    Our user has defined 500 attributes in the customer profile for
    selection criteria. The customer profile have about 3million
    records. The system's responce time should be within 1minutes.
    Now, we have two proposed solution :
    1. Use one table which contains the 500 fields and all the
    fields will be created as index;
    2. Divided the 500 fields in seperate tables and use table join
    to join them together.
    Which method would be better / are there any other solution for
    the problem?
    Thanks!!
    Stephen

    WHat is the purpose of the system? Is this a transaction
    oriented or query oriented system? If you're mainly extracting
    data (and since you chose this forum I'll assume you are), then
    it would be a good candidate for a star schema.
    A dimensional model works extremely well with this kind of
    data. Logically break up your query criteria into multiple
    dimensions and put your fact data in fact table(s).
    I can't give you more info then that without a lot more info
    about your system and it's attributes but that should get you
    started.
    Lewis

  • Dialer not connecting to campaign manager

    Hello,
    I have the dialer not connecting to campaign manager and showing the following:
    10:00:50 Trace: Attempting EMT connection to computer [172.16.200.82/172.16.200.82], port [40032]
    10:00:51 Trace:         Unable to establish an EMT connection:
    10:00:51 Trace:         error value [10060], text: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because con
    nected host has failed to respond.
    Also the dialer PIM is showing the following:
    10:01:37 Trace: Transport: appServerHostName1 = 172.16.200.83
    10:01:37 Trace: Transport: appTcpServiceName1 = 38001
    10:01:37 Trace: Transport: appServerHostName2 = 172.16.200.83
    10:01:37 Trace: Transport: appTcpServiceName2 = 38001
    10:01:37 Peripheral 5004 sending OPC PIM_OK_ACK acknowledgment for command PIM_CONFIGURE_REQ (TransID=0).
    10:01:37 Attempting to connect to MR application at IP address 172.16.200.83 port 38001.
    10:01:38 Attempting to connect to MR application at IP address 172.16.200.83 port 38001.
    10:01:49 Attempting to connect to MR application at IP address 172.16.200.83 port 38001.
    10:01:50 Attempting to connect to MR application at IP address 172.16.200.83 port 38001.
    10:02:02 Attempting to connect to MR application at IP address 172.16.200.83 port 38001.
    10:02:03 Attempting to connect to MR application at IP address 172.16.200.83 port 38001.
    10:02:08 ProcessPIMSetIdleReq: Peripheral 5004 going idle.
    10:02:14 Peripheral 5004 sending OPC PIM_OK_ACK acknowledgment for command PIM_SET_IDLE_REQ (TransID=-1).
    I have checked network connectivity, ping by IP address, ping by hostname, dialer config pointing to address of LoggerA.
    What should I check next?
    Note that I have outbound dialer working fine on ProggerA and I am currently duplexing PG and pim process on ProggerB. PIM1 is ACTIVE but PIM2 is IDLE (logs above are for PIM2)
    Thanks,
    Justine.

    Hi,
    Are you planning to have Duplex dialers ?
    (Assuming it is SIP)If that's the case, you may have to look at the Best Practices for SIP dialer in SRND.
    "Use a media routing PG with one media routing PIM  for duplex SIP Dialers. One SIP Dialer is active while another SIP  Dialer is in warm standby mode. One MR PIM is for each SIP Dialer. In a  duplex MR PG environment, each PG side has only one PIM that connects to  the local dialer                     when the Dialer becomes active"
    Regards,
    Senthil

  • Adding new segment in IDOC

    Hi,
           i have a requirement where based on a condition i need to add a new segment dynamically in Inbound IDOC.
    I have written the code in the user exit of the inbound FM. Its adding new segments and process it perfectly.
    But when i see the IDOC in we02 or we19, i am not able to see the newly added segment.
    Will the newly added segment in FM appear in the We02?
    PS: i have changed the idoc_control-maxsegnum.
    Regards,
    Niyaz

    Hi Niyaz,
    Check out the below program ....Similar to your requirement
    IDoc creation from inbound file
    REPORT ZS7BM000006 message-id ZS7.
    */ Program Name: Creation of DESADV & INVOIC IDocs from file E021
    */ Description : This program reads in external file E021 containing
    *                shipping and invoice data from internal vendors and
    *                creates one DESADV and one INVOIC IDoc per invoice.
    */ Transaction : n/a - run from job Z_ccc_S7B_Annnnn, where
    *                'ccc' = 3-digit client and 'nnnnn' = zero-filled
    *                sequence number matching the scheduled job for E020.
    tables:  lfa1,
             lfm1,
             ekpo,
             eine,
             e1edk01,
             e1edk02,
             e1edk07,
             e1edk08,
             e1edk06,
             e1edk03,
             e1edka1,
             e1edka2,
             e1edp07,
             e1edp09,
             e1edp19,
             e1edp01,
             e1edp02,
             e1edp26,
             e1edp04,
             e1eds01,
             e1eds02,
             zst7f_ty_vendors.
    parameters:  p_path like PATH-PATHEXTERN
                       default '/ftp/atac/in/'.
    data:  INFILE LIKE PATH-PATHEXTERN,
           back_path(7) type c value 'backup/',
           offset like sy-fdpos,
           p07_ctr like sy-index,
           invoice_total type p decimals 3,
           d_seg_num like sy-index,
           i_seg_num like sy-index.
    data:  OUTFILE LIKE PATH-PATHEXTERN,
           today(8)     type c.
    data:  begin of uty_vendors occurs 10,
              lifnr like lfa1-lifnr,
              waers like lfm1-waers,
              name_abbr like zst7f_ty_vendors-name_abbr,
              ship_days like zst7f_ty_vendors-ship_days,
           end of uty_vendors.
    data:  iZSS7B21 like ZSS7B21.
    data:  desadvdata like edi_dd occurs 5 with header line.
    data:  invoicdata like edi_dd occurs 5 with header line.
    data:  dedidc like edi_dc occurs 1 with header line.
    data:  iedidc like edi_dc occurs 1 with header line.
    data:  begin of ie021 occurs 10,
            lifnr            like lfa1-lifnr,
            ship_days        like zst7f_ty_vendors-ship_days,
            invoice_no       like e1edk08-vbeln,
            stat             like e1edk01-action,
            po_number(10)    type n,
            po_lineno(5)     type n,
            slip_number      like e1edp09-vbeln,
            shipto_id        like e1edka1-partn,
            vendor_id        like e1edka1-partn,
            endcust_name     like e1edka1-name1,
            cust_partno      like e1edp09-kdmat,  "char 35
            vendor_partno    like e1edp09-matnr,  "char 35
            invoice_qty      like e1edp09-lfimg,
            qty_uom          like e1edp01-menee,
            unit_price       like e1edp01-vprei,
            price_uom        like e1edp01-pmene,
            price_qty        like e1edp01-peinh,
            line_amount      like e1edp26-betrg,
            currency         like e1edk01-curcy,
            etd              like e1edk06-datum, "ship date
            eta              like e1edk06-datum, "delivery date
            ship_id          like e1edk08-traid,
            ship_method      like e1edk08-traty,
            create_date      like e1edk03-datum,
            plant            like ekpo-werks,
           end of ie021.
    data: save_po like ie021-po_number,
          save_line like ie021-po_lineno,
          save_stat like ie021-stat,
          save_invoice like ie021-invoice_no.
    constants: hun_thou type p decimals 5 value '100000',
               thou type p decimals 3 value '1000'.
    *&      DEFINITION:  append_idoc_rec
    *       add a data record to the IDoc internal table
    define append_idoc_rec.
    &1-tabnam = &1-segnam.
    &2_seg_num = &2_seg_num + 1.
    &1-segnum = &2_seg_num.
    shift &1-segnum left deleting leading space.
    append &1.
    clear &1.
    end-of-definition.       " append_idoc_rec
    * MAIN PROCESSING LOOP
    START-OF-SELECTION.
    today = sy-datum.
    * find all internal vendors
    select a~lifnr
           b~waers
           c~name_abbr  c~ship_days
       into corresponding fields of table uty_vendors
         from lfa1 as a
              inner join lfm1 as b
                 on a~lifnr = b~lifnr
              inner join zst7f_ty_vendors as c
                 on a~lifnr = c~lifnr
         where a~ktokk = 'ZZTY' and
               b~ekorg = '7100' and
               c~ship_code = ' '.
    perform init_desadv.
    perform init_invoic.
    concatenate 'SAP' sy-sysid(3) into: iedidc-sndpor, dedidc-sndpor.
    loop at uty_vendors.
      clear ie021. refresh ie021.
      if not uty_vendors-name_abbr is initial.
    * datafiles are received with naming convention:
    * E020_<customer name abbreviation>_UTY
        concatenate p_path 'E021_' uty_vendors-name_abbr '_UTY'
            into infile.
        if not sy-subrc is initial.  "pathname too long
    * Filename too long: &
          message i016 with infile.
          continue.
        endif.
        condense infile.
        OPEN DATASET INFILE FOR INPUT IN TEXT MODE.
        if not sy-subrc is initial.
    *'Cannot open dataset & on &'
          message i013 with infile sy-datum.
          continue.
        else.
          concatenate p_path back_path 'E021_'
              uty_vendors-name_abbr '_UTY' today
                    into outfile.
          if not sy-subrc is initial.  "pathname too long
    * Filename too long: &
            message i016 with outfile.
            continue.
          endif.
          condense outfile.
          OPEN DATASET OUTFILE FOR OUTPUT IN TEXT MODE.
    * if the datestamped file cannot be created, do not process the
    * input file, because the input file is deleted after processing,
    * and there would be no record of the data.
          if not sy-subrc is initial.
    *'ERROR opening file & for output'
            close dataset infile.
            message i033 with outfile.
            continue.  "process next vendor's file
          endif.
          do.
            read dataset infile into izss7b21.
            case sy-subrc.
              when 0.
                transfer izss7b21 to outfile.
                if izss7b21-datacode = 'T'. "trailer rec
                  perform process_one_vendor using infile.
                  exit.  "process next vendor's file
                endif.
                check: izss7b21-datacode = 'A'. "data rec
                case izss7b21-status.
                  when ' '.  "new
                    ie021-stat = '000'.
                  when 'M'.  "modification
                    ie021-stat = '002'.
                  when 'D'.  "deletion
                    ie021-stat = '003'.
                endcase.
                move-corresponding uty_vendors to ie021.
                move-corresponding izss7b21 to ie021.
                perform convert_po_no using izss7b21-pono_poline
                                   changing ie021-po_number
                                            ie021-po_lineno.
                perform convert_dates using ie021-lifnr
                                            izss7b21-etd
                                            izss7b21-eta
                                            izss7b21-ship_method
                                            izss7b21-create_date
                                   changing ie021-eta
                                            ie021-ship_days.
                perform quantity_conversion
                                    using izss7b21-qty_uom
                                          izss7b21-invoice_qty
                                          izss7b21-unit_price
                                    changing ie021-qty_uom
                                             ie021-invoice_qty
                                          izss7b21-line_amount.
                perform money_conversion
                                    using izss7b21-currency
                                          izss7b21-unit_price
                                          izss7b21-price_uom
                                          izss7b21-line_amount
                                    changing ie021-currency
                                             ie021-price_uom
                                             ie021-price_qty
                                             ie021-unit_price
                                             ie021-line_amount.
                perform SAP_vendor_partno
                                    changing ie021-cust_partno.
                append ie021.
              when 4.  "EOF
                perform process_one_vendor using infile.
                exit.  "process next vendor's file
              when others.
    *ERROR reading dataset & - &
                message i015 with infile sy-datum.
                exit.
            endcase.
          enddo.
          close dataset: infile, outfile.
          delete dataset infile.
        endif.
      endif.
    endloop. "UTY_VENDORS
    *&      Form  process_one_vendor
    *       Pre-processed records from one vendor file are now in the
    *       internal table ie021 - ready to create IDocs
    FORM process_one_vendor using value(infile).
      sort ie021 by invoice_no stat po_number po_lineno.
      loop at ie021.
        if ( ie021-invoice_no <> save_invoice or
             ie021-stat <> save_stat ).
          if sy-tabix > 1.
            perform post_idocs using ie021-stat.
          endif.
          perform idoc_header_segs using ie021-stat.
        endif.
        if ( ie021-stat <> save_stat or
             ie021-po_number <> save_po or
             ie021-po_lineno <> save_line or
             ie021-invoice_no <> save_invoice ).
          if ( sy-tabix > 1 and
               ie021-stat = '000' ).
            perform idoc_poheader_segs.
          endif.
        endif.
        perform idoc_item_segs using ie021-stat.
        save_po = ie021-po_number.
        save_line = ie021-po_lineno.
        save_invoice = ie021-invoice_no.
        save_stat = ie021-stat.
      endloop.
      perform post_idocs using ie021-stat.
    * File successfully processed: &
      message s035 with infile.
    ENDFORM.                    " process_one_vendor
    *&      Form  convert_po_no
    *       Break the PO number & line field into separate fields
    FORM convert_po_no using value(infield)
                       changing po_number like ie021-po_number
                                po_line like ie021-po_lineno.
    data:  cpos like sy-fdpos,
           lpos like sy-fdpos,
           cline(6) type c.
    * if the infield contains a hyphen, assume that the preceding characters
    * represent the po number, if they are numeric. The po line number is
    * assumed to be all numeric characters after the hyphen.
      if infield ca '-'.
        if infield(sy-fdpos) co ' 0123456789'.  "numeric
          po_number = infield(sy-fdpos).
          cpos = sy-fdpos + 1.
        endif.
      else.  "no hyphen - PTY
        if infield(2) = '71'.  "SAP number range
          cpos = 10.
        else.                  "SyteLine number
          cpos = 6.
        endif.
        if infield(cpos) co ' 0123456789'.  "numeric
          po_number = infield(cpos).
        endif.
      endif.
      if not po_number is initial.
        while infield+cpos(1) co '0123456789'.
          cline+lpos(1) = infield+cpos(1).
          lpos = lpos + 1.
          cpos = cpos + 1.
        endwhile.
        shift cline left deleting leading '0'.
        if not cline is initial.
          po_line = cline.
        endif.
      endif.
    * Put out a warning in the job log, but create the IDoc to save the data
      if ( po_number is initial or
           po_line is initial ).
    * PO number - line item conversion failed: &
        message i034 with infield.
      endif.
    ENDFORM.                    " convert_po_no
    *&      Form  convert_dates
    *       Convert ship date to delivery date, if necessary
    FORM convert_dates using value(vendor_no)
                             value(i_ship_date)
                             value(i_delivery_date)
                             value(i_ship_code)
                             value(i_create_date)
                    changing o_delivery_date
                             ship_days.
    data:  ship_date type d.
    * if delivery date not sent, calculate it from ship date plus
    * ship days.
    * Note that this logic could leave delivery date blank,
    * if ship date is not numeric.
      if ( i_delivery_date is initial or
           i_delivery_date co ' 0' ).  "no delivery date sent
        if ( i_ship_date co ' 0123456789' and
             i_ship_date cn ' 0' ).    "ship date sent
    * move the ship date into a date field to add days
          ship_date = i_ship_date.
        elseif ( i_create_date co ' 0123456789' and
                 i_create_date cn ' 0' ).
          ship_date = i_create_date.
        endif.
        if not i_ship_code is initial.
          select single ship_days from zst7f_ty_vendors
                   into ship_days
                  where lifnr = vendor_no
                    and ship_code = i_ship_code.
        endif.
        if not ship_date is initial.
          if ship_days > 0.
            ship_date = ship_date + ship_days.
            o_delivery_date = ship_date.
            shift o_delivery_date left deleting leading ' '.
          endif.
        endif.
      else.  "delivery date sent
        o_delivery_date = i_delivery_date.
      endif.
    ENDFORM.                    " convert_dates
    *&      Form  quantity_conversion
    *       The quantities in the input file are implied 3-decimal,
    *       so need to be converted into a "real" number.
    *       Also, the unit of measure may be 'KP' indicating that the qty
    *       is given in thousands.
    FORM quantity_conversion USING    value(i_UOM)
                                      value(i_invoice_qty)
                                      value(i_unit_price)
                        CHANGING o_uom like iE021-qty_UOM
                                 o_invoice_qty like IE021-INVOICE_QTY
                                 c_LINE_AMOUNT like izss7b21-line_amount.
    data:  f_invoice_qty type f.
    data:  n_invoice_qty like lips-kcmeng.
    data:  f_unit_price type f.
    data:  f_line_amt type f.
    data:  n_line_amt0 type p decimals 0.
      if ( i_invoice_qty co ' 0123456789' and
           i_invoice_qty cn ' 0' ).
        f_invoice_qty = i_invoice_qty.
    * if no extended price is sent, calculate it
        if c_line_amount is initial.
    * the qty is implied 3-dec, the price is still implied
    * 5-dec, and line amount should be implied 3-dec.
          f_unit_price = i_unit_price.
          f_line_amt = ( f_invoice_qty * f_unit_price ) / 100000.
          n_line_amt0 = f_line_amt.
          c_line_amount = n_line_amt0.
          shift c_line_amount left deleting leading space.
        endif.
    * if the invoice qty is per 1000, the implied 3-dec times 1000 equals
    * the unconverted value. Otherwise, divide by 1000 to get the PCE qty
        if i_uom = 'KP'.
          n_invoice_qty = f_invoice_qty.
        else.
          n_invoice_qty = f_invoice_qty / thou.
        endif.
      endif.
      o_uom = 'PCE'.
      if not n_invoice_qty is initial.
        o_invoice_qty = n_invoice_qty.
        shift o_invoice_qty left deleting leading space.
      else.
        clear o_invoice_qty.
      endif.
    ENDFORM.                    " quantity_conversion
    *&      Form  money_conversion
    *       Add the implied decimals and store price-per qty, if
    *       price per 1,000 is sent.
    FORM money_conversion USING    value(I_CURR)
                                   value(i_UNIT_PRICE)
                                   value(i_UOM)
                                   value(i_LINE_AMOUNT)
                          CHANGING o_CURRENCY like ie021-currency
                                   o_PRICE_UOM like ie021-price_uom
                                   o_PRICE_QTY like ie021-price_qty
                                   o_UNIT_PRICE like ie021-unit_price
                                   o_LINE_AMOUNT like ie021-line_amount.
    data:  n_unit_price type p decimals 5,
           n_line_amount type p decimals 3.
    * not all of the vendors send the currency code, so use the vendor
    * master default
      case i_curr(2).
        when 'US'.
          o_currency = 'USD'.
        when 'JP'.
          o_currency = 'JPY'.
        when others.
          o_currency = uty_vendors-waers.
      endcase.
    * unit price is implied 5-dec
      if ( i_unit_price cn ' 0' and
           i_unit_price co ' 0123456789' ).
        n_unit_price = i_unit_price.
        n_unit_price = n_unit_price / hun_thou.
      endif.
    * line price is implied 3-dec
      if ( i_line_amount co ' 0123456789' and
           i_line_amount cn ' 0' ).
        n_line_amount = i_line_amount.
        n_line_amount = n_line_amount / thou.
      endif.
    * 'KP' = price per thousand
      if i_uom = 'KP'.
        o_price_qty = '1000'.
      else.
        o_price_qty = '1'.
      endif.
      o_price_uom = 'PCE'.
      if not n_unit_price is initial.
        o_unit_price = n_unit_price.
        shift o_unit_price left deleting leading space.
      else.
        clear o_unit_price.
      endif.
      if not n_line_amount is initial.
        o_line_amount = n_line_amount.
        shift o_line_amount left deleting leading space.
      else.
        clear o_line_amount.
      endif.
    ENDFORM.                    " money_conversion
    *&      Form  SAP_vendor_partno
    *       replace UTY part number sent by vendor with SAP material no.
    *       from PO line item.
    FORM SAP_vendor_partno changing cust_partno like ie021-cust_partno.
    tables: makt.
    data: partno_sent like makt-maktx.
      partno_sent = cust_partno.
      clear: makt, cust_partno.
      select single matnr from ekpo into cust_partno
             where ebeln = ie021-po_number and
                   ebelp = ie021-po_lineno.
      if sy-subrc is initial.
    *compare material description to part number sent by vendor
        select single maktx from makt into makt-maktx
            where matnr = cust_partno.
        if partno_sent <> makt-maktx.
    * 'Part No. Mismatch: PO & - &, Part sent &, SAP mat.no. &'
          message i031 with ie021-po_number ie021-po_lineno
                            partno_sent makt-maktx.
        endif.
      else.  "PO line not found
    *try to find SAP material number using 20-char catalog no. sent
        select single matnr from makt into cust_partno
            where maktx = partno_sent.
        if not sy-subrc is initial.
    * 'SAP material no. not found for & - PO & - &'
          message i032 with partno_sent ie021-po_number ie021-po_lineno.
        endif.
      endif.
    *if not found, IDoc will go to workflow for missing material no.
    ENDFORM.                    " SAP_vendor_partno
    *&      Form  idoc_header_segs
    *       create internal table entries for header segments.
    *  DESADV:
    *          E1EDK07
    *          E1EDKA1
    *          E1EDK03
    *          E1EDK08
    *          E1EDKA2
    *          E1EDK06
    *  INVOIC:
    *          E1EDK01
    *          E1EDKA1(s)
    *          E1EDK02
    *          E1EDK03(s)
    FORM idoc_header_segs using value(desadv_ok).
    * INVOIC
      clear i_seg_num.
      invoicdata-segnam = 'E1EDK01'.
      e1edk01-action = ie021-stat.
      if ie021-currency(2) = 'US'.
        e1edk01-curcy = 'USD'.
      else.
        e1edk01-curcy = 'JPY'.
      endif.
      invoicdata-sdata = e1edk01.
      append_idoc_rec invoicdata i.
      clear e1edka1.
      invoicdata-segnam = 'E1EDKA1'.
      e1edka1-parvw = 'RE'.
      e1edka1-partn = ie021-shipto_id.
      invoicdata-sdata = e1edka1.
      append_idoc_rec invoicdata i.
      clear e1edka1.
      invoicdata-segnam = 'E1EDKA1'.
      e1edka1-parvw = 'LF'.
      e1edka1-partn = ie021-lifnr.
      e1edka1-lifnr = ie021-shipto_id.
      invoicdata-sdata = e1edka1.
      append_idoc_rec invoicdata i.
      if not ie021-endcust_name is initial.
        clear e1edka1.
        invoicdata-segnam = 'E1EDKA1'.
        e1edka1-parvw = 'WE'.
        e1edka1-name1 = ie021-endcust_name.
        invoicdata-sdata = e1edka1.
        append_idoc_rec invoicdata i.
      endif.
      clear e1edk02.
      invoicdata-segnam = 'E1EDK02'.
      e1edk02-qualf = '009'.
      e1edk02-belnr = ie021-invoice_no.
      invoicdata-sdata = e1edk02.
      append_idoc_rec invoicdata i.
      clear e1edk03.
      invoicdata-segnam = 'E1EDK03'.
      e1edk03-iddat = '012'.
      e1edk03-datum = ie021-create_date.
      invoicdata-sdata = e1edk03.
      append_idoc_rec invoicdata i.
      invoicdata-segnam = 'E1EDK03'.
      e1edk03-iddat = '024'.
      invoicdata-sdata = e1edk03.
      append_idoc_rec invoicdata i.
      check desadv_ok = '000'.
    * DESADV
      clear d_seg_num.
      desadvdata-segnam = 'E1EDK07'.
      e1edk07-action = ie021-stat.
      e1edk07-bolnr = ie021-invoice_no.
      desadvdata-sdata = e1edk07.
      append_idoc_rec desadvdata d.
      clear e1edka1.
      desadvdata-segnam = 'E1EDKA1'.
      desadvdata-sdata = e1edka1.
      append_idoc_rec desadvdata d.
      clear e1edk03.
      desadvdata-segnam = 'E1EDK03'.
      desadvdata-sdata = e1edk03.
      append_idoc_rec desadvdata d.
      clear e1edk08.
      desadvdata-segnam = 'E1EDK08'.
      e1edk08-vbeln = ie021-invoice_no.
      e1edk08-traid = ie021-ship_id.
      e1edk08-traty = ie021-ship_method.
      desadvdata-sdata = e1edk08.
      append_idoc_rec desadvdata d.
      clear e1edka2.
      desadvdata-segnam = 'E1EDKA2'.
      desadvdata-sdata = e1edka2.
      append_idoc_rec desadvdata d.
      clear e1edk06.
      desadvdata-segnam = 'E1EDK06'.
      e1edk06-iddat = '025'.  "document date
      e1edk06-datum = ie021-create_date.
      desadvdata-sdata = e1edk06.
      append_idoc_rec desadvdata d.
      if not ie021-eta is initial.
        clear e1edk06.
        desadvdata-segnam = 'E1EDK06'.
        e1edk06-iddat = '001'.  "delivery date
        e1edk06-datum = ie021-eta.
        desadvdata-sdata = e1edk06.
        append_idoc_rec desadvdata d.
      endif.
      if not ie021-etd is initial.
        clear e1edk06.
        desadvdata-segnam = 'E1EDK06'.
        e1edk06-iddat = '010'.  "ship date
        e1edk06-datum = ie021-etd.
        desadvdata-sdata = e1edk06.
        append_idoc_rec desadvdata d.
      endif.
    ENDFORM.                    " idoc_header_segs
    *&      Form  idoc_poheader_segs
    *       create internal table entries for DESADV PO/item segments
    *          E1EDP07
    FORM idoc_poheader_segs.
    *DESADV
      clear e1edp07.
      desadvdata-segnam = 'E1EDP07'.
      e1edp07-bstnk = ie021-po_number.
      e1edp07-posex = ie021-po_lineno.
      desadvdata-sdata = e1edp07.
      append_idoc_rec desadvdata d.
      p07_ctr = p07_ctr + 1.
    ENDFORM.                    " idoc_poheader_segs
    *&      Form  idoc_item_segs
    *       create internal table entries for PO item segments:
    *          DESADV:   E1EDP09
    *          INVOIC:   E1EDP01        Qtys
    *                    E1EDP02        ref nos. (PO number / line)
    *                    E1EDP19        part numbers
    *                    E1EDP26        amounts
    *                    E1EDP04        taxes
    FORM idoc_item_segs using value(desadv_ok).
    data:  n_line_amt  type p decimals 3.
    *INVOIC
      clear e1edp01.
      invoicdata-segnam = 'E1EDP01'.
      e1edp01-menee = ie021-qty_uom.
      e1edp01-menge = ie021-invoice_qty.
      e1edp01-vprei = ie021-unit_price.
      e1edp01-pmene = ie021-price_uom.
      e1edp01-peinh = ie021-price_qty.
      e1edp01-netwr = ie021-line_amount.
      invoicdata-sdata = e1edp01.
      append_idoc_rec invoicdata i.
      clear e1edp02.
      invoicdata-segnam = 'E1EDP02'.
      e1edp02-qualf = '001'.
      e1edp02-belnr = ie021-po_number.
      e1edp02-zeile = ie021-po_lineno.
      invoicdata-sdata = e1edp02.
      append_idoc_rec invoicdata i.
      clear e1edp19.
      invoicdata-segnam = 'E1EDP19'.
      e1edp19-qualf = '001'.
      e1edp19-idtnr = ie021-cust_partno.
      invoicdata-sdata = e1edp19.
      append_idoc_rec invoicdata i.
      clear e1edp19.
      invoicdata-segnam = 'E1EDP19'.
      e1edp19-qualf = '002'.
      e1edp19-idtnr = ie021-vendor_partno.
      invoicdata-sdata = e1edp19.
      append_idoc_rec invoicdata i.
      clear e1edp26.
      invoicdata-segnam = 'E1EDP26'.
      e1edp26-qualf = '003'.
      e1edp26-betrg = ie021-line_amount.
      invoicdata-sdata = e1edp26.
      append_idoc_rec invoicdata i.
    * dummy tax seg
      clear e1edp04.
      invoicdata-segnam = 'E1EDP04'.
      e1edp04-msatz = '0.00'.
      invoicdata-sdata = e1edp04.
      append_idoc_rec invoicdata i.
      n_line_amt = ie021-line_amount.
      invoice_total = invoice_total + n_line_amt.
      check desadv_ok = '000'.
    *DESADV
      clear e1edp09.
      desadvdata-segnam = 'E1EDP09'.
      e1edp09-vbeln = ie021-slip_number.
      e1edp09-matnr = ie021-vendor_partno.
      e1edp09-vrkme = ie021-qty_uom.
      e1edp09-lfimg = ie021-invoice_qty.
      desadvdata-sdata = e1edp09.
      append_idoc_rec desadvdata d.
    ENDFORM.                    " idoc_item_segs
    *&    Form  post_idocs
    *     create database IDocs from the idocdata tables and clear tables.
    FORM post_idocs using value(desadv_ok).
    *INVOIC
      clear e1eds01.
      invoicdata-segnam = 'E1EDS01'.
      e1eds01-sumid = '010'.
      e1eds01-summe = invoice_total.
      e1eds01-waerq = ie021-currency.
      shift e1eds01-summe left deleting leading space.
      invoicdata-sdata = e1eds01.
      append_idoc_rec invoicdata i.
      CALL FUNCTION 'INBOUND_IDOC_PROCESS'
        TABLES
          IDOC_CONTROL       =  iedidc
          IDOC_DATA          =  invoicdata.
      commit work.
    *DESADV
      if desadv_ok = '000'.
        clear e1eds02.
        desadvdata-segnam = 'E1EDS02'.
        e1eds02-sumid = '001'.
        e1eds02-summe = p07_ctr.
        shift e1eds02-summe left deleting leading space.
        desadvdata-sdata = e1eds02.
        append_idoc_rec desadvdata d.
        CALL FUNCTION 'INBOUND_IDOC_PROCESS'
          TABLES
            IDOC_CONTROL       =  dedidc
            IDOC_DATA          =  desadvdata.
        commit work.
      endif.
      refresh: desadvdata,
               invoicdata.
      clear:
        desadvdata,
        invoicdata,
        p07_ctr,
        invoice_total,
        save_stat,
        save_po,
        save_line,
        save_invoice.
    ENDFORM.                    " post_idocs
    *&      Form  init_desadv
    *       add a DESDAV control record and initialize fields
    FORM init_desadv.
    clear dedidc. refresh dedidc.
    * initialize control record:
    move:  '2'        to  dedidc-direct,
          'DESADV01'  to  dedidc-doctyp,
          'DESADV'    to  dedidc-mestyp,
          'F'         to  dedidc-std,
          'E021'      to  dedidc-stdmes,
          'LS'        to  dedidc-sndprt,
          'TY_VENDORS' to dedidc-sndprn,
          sy-datlo    to  dedidc-credat,
          sy-timlo    to  dedidc-cretim.
    append dedidc.
    ENDFORM.              " init_desadv
    *&      Form  init_invoic
    *       add a INVOIC control record and initialize fields
    FORM init_invoic.
    clear iedidc. refresh iedidc.
    * initialize control record:
    move:  '2'        to  iedidc-direct,
          'INVOIC01'  to  iedidc-doctyp,
          'INVOIC'    to  iedidc-mestyp,
          'MM'        to  iedidc-mescod,
          'F'         to  iedidc-std,
          'E021'      to  iedidc-stdmes,
          'LS'        to  iedidc-sndprt,
          'TY_VENDORS' to iedidc-sndprn,
          sy-datlo    to  iedidc-credat,
          sy-timlo    to  iedidc-cretim.
    append iedidc.
    ENDFORM.              " init_invoic
    REWARD POINTS IF HELPFUL
    Lakshmiraj.A

  • Document required on campaign management

    Hi,
    Can anyone plz send the document for campaign management configuration to me at [email protected]
    I have already done the Base config provided in C22_BB_ConfigGuide_EN_DE.doc,  I want the other steps related to target group and campaign execution.
    Regards
    SAP CRM

    Hi Saravana,
    I am giving you the link for this
    http://help.sap.com/bp_crmv152/CRM_DE/BBLibrary/Documentation/C22_BB_ConfigGuide_EN_DE.doc
    Hope this link helps you.
    Regards
    Nadh.

  • Authorizations in Campaign Management

    Hi Folks
    How do we setup authorizations in CRM for Campaign Management.
    I would like to have role for Campaign Creator, Campaign Release, Campaign Approver. Are there any specific authorization objects that drives this functionality. Any help on this is highly appreciated
    Thanks
    KV

    For maintaining authorization:
    SPRO --> IMG >SD> BF> CM/RM> CM/RM settings --> Maintain authorizations
    <b>Document Value Class:</b>
    Document value classes provide a means of assigning sales order and sales and distribution documents depending on their document value
    Using the document value classes, credit representatives, for example, can be given different authorizations for credit allocations depending on the document value.
    Actions
    1. Create document value classes according to your requirements by entering a three-character alphanumeric key and a textual description.
    2. Make sure that the credit representatives are allocated to the document value classes.
    Assign Document value Classes:
    1. Enter a credit control area and allocate a credit value to it in a relevant currency.
    2. Allocate a document value class.
    3. Make sure that the credit control area was entered in the corresponding customer master records.
    Maintain Authorizations:
    Here u need to create roles and for perticular user , you can assign that authorizations.
    If you need more help prefer implementation guide in help.sap.com

  • Error runing Commerce/Campaign Management on extends weblogic.ejb20.internal.StatelessEJBObject

    Hi,
    I just installed WLS6.0 it is running smoothly thanx to Jignesh help , also I
    put in the ejb20.ajr and after that I installed the Campaign Management 1.1 but
    I´m geting this error when I start theh server well this is the first of thousand
    errors:
    /opt/posadas/bea/wlcs3.5/tmp_ejboneworld.cemtec.com7501/events/com/bea/commerce/
    platform/events/internal/EventServiceBeanEOImpl.java:12: Superclass java.lang.Ob
    ject of class com.bea.commerce.platform.events.internal.EventServiceBeanEOImpl
    n
    ot found.
    extends weblogic.ejb20.internal.StatelessEJBObject
    Any one can help me?Thanx in Advanced

    Gerado,
    I guessing you mispelled ejb20.jar - - you need to include this at the front of
    your java.class.path in your WLS 6.0 startup script
    Chuck

  • Configurable Products and Campaign Management

    Hi All,
    In our project we are going for configurable products. We plan to give campaign based discounts on these products in CRM.
    Please let me know how to handle configurable products in Campaign Management.
    Many thanks for your response:
    Keshav

    Hi Keshav,
    I am currently working on setting up discounts related to a campaign. Would you have any information on how to do this? I know I need to select condition types from the discount tab. I guess I will have to create the conditon types in IMG. There are some condition types already exisitng that are being used by the pricing procedure for sales orders. Can i use the same condition types??
    Any input would be highly welcome.
    Thanks,
    Deepak

  • Hi Email Campaign Management without automation.

    Hi,
    I am working on Email Campaign management. Where we have created a survey ,Mail form, and a campaign. This Survey goes to the customer via email in form of URL.
    How we can capture the responses of the customer. Based on which leads can be created?
    Ability to capture survey response in CRM system without using Campaign automation Functionality ??
    I am looking for a solution without using the Campaign automation Functionality as it is out of scope of my project.
    Regards
    Rajiv Sharma

    Hi Rav,
    I would suggest that you start configuring SCOT as described in:
    <a href="/people/thomas.jung3/blog/2004/09/08/sending-e-mail-from-abap--version-610-and-higher--bcs-interface">Sending E-Mail from ABAP - Version 610 and Higher - BCS Interface</a>
    Then you can go further on as described in the:
    <a href="http://help.sap.com/bp_crmv340/CRM_DE/BBLibrary/Documentation/C22_BB_ConfigGuide_EN_US.doc">Best Practice CRM Campaign Management - Configuration Guide</a>
    Regards
    Gregor

  • Cut an object with the knife without adding new segment?

    If I use the knife to cut across a closed object, it creates two closed objects. What I would LIKE is to cut the object and have two open objects touching at the points of the cut. E.g., if I cut a square in half, I want two brackets touching at their ends. Obviously, I can go in and delete the added extraneous segments, but it adds extra steps. Thus far, I have not found any way to turn that off, or to toggle it, or anything. I DID do a search in the Adobe support help files and couldn't find anything -- which probably means that every article that mentions the knife has that exact info in billposter type right at the top of the article ; it's the way these things usually run with me...! <ruefulGrin>
    Am I missing something simple?
    (For the sake of completeness, I'm using Illustrator CC 2014.0.0 on OS X Mavericks.)

    Thanks, Jacob. That certainly will work; unfortunately, it's just not as quick and precise as Option-dragging the knife to get a straight cut across an object or, more importantly, across multiple objects.
    Ah, well -- when they finally replaced my old G5 at work last year, I knew it was going to mean giving up Freehand and learning the Adobe way of doing things. After predominantly doing illustrations in Freehand since the Aldus days, though -- somewhere around 25 years ago, now -- it's difficult having to learn a whole new set of reflexes!

Maybe you are looking for

  • Apple Customer Service for Fraud issue

    How can I get in touch with someone at Apple who can help me with a fraud issue? Someone stole my CC # and made several purchases at Itunes, totalling nearly $1000 before the fraud watch company caught up with them and placed a block on the card. The

  • Overlapping layers/hotspots?

    I'm looking at creating a photo gallery and here's what I'd like to do. 9 thumbnails of photos in a 3x3 grid all sitting next to each other. When you click on one of the thumbnails the thumbnail layer would be replaced by the relevant photo. Then by

  • ADF findMode, is this a bug?

    Hi all, I've noticed that when using the default find action on one Iterator in a page, the entire UIModel is placed in findMode; that is, all Iterator bindings return a value for true for ${bindings.MyIterator.findMode}. Is this normal? Smells like

  • Editing iphoto Album using Pages 08

    I had the issue of Mac Life that ran an editorial on how to incorporate pages with iphoto album. I THREW it out doing spring cleaning. Yes im an idiot. So... are there any links on the web or here that can help assist me in learning how to combine th

  • Berkeley DB master-slave replication basic java code example

    Hi, I am new user of berkeley db and I have limited knowledge of Java programming. Can someone help me with basic Java example code of how to do master-slave replication without elections. Thanx, Jani