Bapi to set user status of a task

Hi,
I am looking for a bapi or method to set the user status of a task.
We have created a status profile for user status and need to set the user status of the task in the dpr_attributes badi based on some conditions.
I tried bapi BAPI_BUS2175_SET_STATUS but it either says status profile not found or if i assign the status profile to the task it says status profile already active but never changes the user status.
I checked method SET_DATA_EXT of class CL_DPR_TASK_O but it does not have user status field for modifying whereas GET_DATA_EXT method has the user status but it wouldn't help to change the user status.
If anyone has any idea on this it will be extremely helpful.
Regards,
Simmi

Hello!
Please try the following code, it works for us (let's say the status profile is already active, otherwise you have to add the corresponding export parameter):
DATA:  BUS           TYPE BAPI_TS_BUSINESS_TRANSACTION,
            RETURN    TYPE STANDARD TABLE OF BAPIRET2,
              BUS-BUSINESS_TRANSACTION = 'SET_USER_STATUS'.
              BUS-USER_STATUS = your_user_status.
              CALL FUNCTION 'BAPI_BUS2175_SET_STATUS'
                EXPORTING
                  TASK_GUID               = task_guid
                  IS_BUSINESS_TRANSACTION = BUS
                TABLES
                  RETURN                  = RETURN.
If still not working, you can have a look to the following SAP Note: 954975
Matthias

Similar Messages

  • BAPI to set user status for PS

    Hi,
    I need to set the status as approved "E0002" from BAPI ( from workflow) for Project definition (BUS2001)
    I got BAPI " BAPI_BUS2001_SET_STATUS" and gave import parameter for  project definition but i couldnt able to give value for  set_user_status as it takes only 4 char but my status(JEST) is 5 char (E0002).
    Please help me how to use this bapi and what are all other bapi's i need to call to work correct.
    Ashu

    Use this FM I_CHANGE_STATUS for changing status.
    CALL FUNCTION 'I_CHANGE_STATUS'
    EXPORTING
    OBJNR = v_objnr
    ESTAT_INACTIVE = 'I0001'
    ESTAT_ACTIVE = 'I0002'

  • BAPI_BUS2173_SET_STATUS should be able to set user status profile.

    Hi,
    I need use a workflow to setup user status profile for PHASE and TASK, but I found that the unique easy way to setup the user status profile for PHASE or TASK is manual operation.  I have created a user status profile of the BUS2173 and BUS2175. I can't use BAPI_BUS2173_SET_STATUS function to setup user status profile, but it can be used to setup a user status after the user status profiel has been setup by manuay.
    Why?
    Best regards,
    Arrow Yang.

    Hi,
    Try calling BAPI_BUS2173_SET_STATUS first time for setting the status profile by passing the status profile in iv_status_profile parameter and the phase guid but not passing the user status to the bapi.
    Now after this again call the same bapi, this time just passing the user status and phase guid and not passing anything in the status profile.
    We have used this bapi to set the status profile.
    Regards,
    Simmi

  • Set user status in notification save exit

    Hi all,
    There is a requirement to set the user status of a TASK during notification save exit. Is there any way to do this.
    Thanks in advance..
    Deepti

    Hi ,
           You may need to use user exit QQMA0014 (Checks before saving a notification)  and in that u need to use FM STATUS_CHANGE_EXTERN - to set or delete user status ..
    regrds
    pushpa

  • Setting user status using actions in business activity

    Hi
    I have defined a new action profile. In that I have defined a new action using which I want to set user status to overdue. I have also defined a new user status "overdue".
    Now I want to set user status to overdue. For that we have defined new badi implementation also, but it is not able to change the status.
    Please tell me what all steps I need to do, to make it work.
    Thanx in advance.
    Cheers
    Hitesh

    Hi Hitesh,
    Check whether processing parameters are given correctly
    It should be given as below
    Element  : PROCESS
    Name     : PROCESS
    Type Name : CRM_J_STATUS
    Initial value  : OPEN      (here you can give the one you want )
    Let me know if you have any issues.
    Reward points if it helps.
    Regards,
    Madhu

  • How to Set User Status of Sales Order at item level.

    How to Set User Status of Sales Order at item level by default to 'Purchase Req Not Created' (example)while creating order. Please tell EXIT Name to be triggered & Internal table to be populated.
    Thanx,
    Srini
    Moderator message: please do your own research before asking.
    Edited by: Thomas Zloch on Feb 21, 2011 11:19 AM

    Mathew,
    Here is a document that should help you get started on enhancing 2LIS_11*
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c09d5356-d8c4-2d10-8b84-d24723fc1f0a?QuickLink=index&overridelayout=true
    Good luck!

  • Can we set user status in tj30 ?

    Hi all,
    can we set user status in tj30 ?
    i've created a new status profile and it seems SAP automaticaly generate all of status in my status profile to table tj30.
    but the data in column estat of table tj30 that created is started from E0001.
    can we set the data start from certain number ( for example : from E0060 ) not from E0001 ?
    or can we update it from E0001 to E-something ( for example : to E0056 ) ?
    please advice or breif me.
    many thanks in advance

    Hi Eddhie,
    You must perform the following steps manually:
    1. Transaction SPPFCADM
    2. Select the application
                  "CRM_ORDER"
    1. Click 'Define action profiles and actions'
    2. Select the action profile (if you are using the standard action profile)
                  "SMSD_SERVICE_ORDER_DNO"
    1. Double-click 'Action definition'
    2. Select the action
                  "SMSD_SRVC_ORDER_DNO_SAP_UPDATE"
    1. Double-click 'Processing types'
    2. Go to the change mode using the 'Display/change' button
    3. Press the "Change" button in the screen area "Method call settings" in the line "Define processing parameters".
    4. Click the 'Create' pushbutton in the dialog box that is then displayed.
    5. Enter the following data:
    a) Element: USER_STATUS
    b) Name: USER_STATUS
    c) Short description: USER_STATUS
    d) Data type tab, ABAP dictionary reference
                             Structure TJ30
                             Field ESTAT
    e) "Initial value" tab page, entry "E0060" in the field USER_STATUS (or another allowed user status from the status profile used if desired).
    f) Copy the entries.
    6. Save
    Check OSS Note (663970) for more detail.
    Please award points if the solution is helpful.
    Thanks
    Sumi

  • Set User status collectively in PM order

    Hi,
    I want to set user status collectively in PM orders. Is there any standard T Code.
    Regards
    Rakesh Ganpat

    Hi,
      As mentioned above there are no standard transaction for this and the BADI are available from ECC 6.0 EHP3 only. Either way you will have to do some development.
    You could use the FM STATUS_CHANGE_EXTERN to make the user status change one by one. You can incorporate this FM within the above user exit or within you customer Program.
    Regards
    Narasimhan

  • Any Pointers to set user status in iw31 and iw32

    Hi all,
    I am working on an enhancement where I need to set the user status for an order every time a new order is created(iw31) or an existing order is changed(iw32) and a material in that is flagged as a retirement unit material.
    Is there any function module to do that?

    Hello Anu
    I would like to point to the BAPI documentation where a useful BAdI (<b>IBAPI_ALM_ORD_MODIFY</b>) is mentioned:
    FU BAPI_ALM_ORDER_MAINTAIN
    Short Text
         Process Maintenance-/Service Order
    Functionality
         This Business Application Programming Interface (BAPI) is used for
         changing maintenance- or service orders and their lower-level objects.
         The following objects of an order can be processed (for restrictions,
         see the note at the end of the documentation):
         o   Order header
         o   Partner
         o   User status
         o   Order operations
         o   Relationships
         o   Components
         o   Long texts for order header, operations, and components
       Function
         Calling up this BAPI once allows you to perform all the operations. For
         this the system supplies the function module with a method table
         containing the methods to be performed. The entries in the method table
         refer to data records in the optionally filled-out data tables. All the
         methods from the method table are performed. Alternatively, just lower-
         level objects from existing orders can be changed.
         You can process the transferred data with the Business Add-In (BAdI)
         IBAPI_ALM_ORD_MODIFY to, for example, merge data from the external
         system with data from the R/3 system. The BAdI is called up as soon as
         the transferred data is converted into the internal format. The tests
         then take place after this.
       Construction of Method Table
         o   REFNUMBER   Reference number for linking object methods - attributes
             The reference number is the line of the database which contains the
             corresponding data. The data table is determined by the object type.
         o   OBJECTTYPE  Object category
             The object category specifies which object from the order should be
             processed. The key words listed here are not language-dependent and
             must  be transferred exactly as they are. The following objects
             exist:
             -   HEADER      Order header
             -   PARTNER     Partner data
             -   USERSTATUS  User status
             -   OPERATION   Operation data
             -   RELATION        Relationships
             -   COMPONENT   Components
             -   TEXT            Long texts
             -   (empty)     ,General BAPI functions (save)
         o   METHOD      Methods
             The methods with which the data should be processed. The following
             functions exist:
             -   CREATE          Create objects
             -   CHANGE          Change objects
             -   DELETE          Delete objects
             -   RELEASE         Release
             -   TECHNICALCOMPLETE   Technically complete
             -   ATPCHECK            Availability check
             -   CALCULATE       Calculate
             -   SCHEDULE            Schedule
             -   DELELTEDSEX     Delete the status for external scheduling at
                 operation level
             -   SAVE                Save all data
             -   DIALOG          Call-up dialog. See explanation below.
             -   TRACE       Write trace file in the specified file to the
                 frontend
         o   OBJECTKEY       SAP external object key
             This key is for assigning the lower-level objects correctly to the
             corresponding objects, as there is always just one key in the data
             table. The key must have the following structure:
             -   1-12        Order number
                 When creating orders with internal number assignment, a
                 reference number  beginning with % must be entered here. The
                 BAPI then returns this number and the number actually assigned.
             -   13-16       Operation number
             -   17-20       Sub-operation number
             For relationships, the key is structured as follows:
             -   1-12    ,Order number from
             -   13-16   Operation number from
             -   17-28   Order number to
             -   29-32   Operation number to
         The following methods are permissible for the individual objects:
         o   HEADER:
             CREATE, CHANGE, RELEASE, TECHNICALCOMPLETE, ATPCHECK, CALCUALTE,
             SCHEDULE
         o   OPERATION
             CREATE, CHANGE, DELETE, DELETEDSEX
         o   PARTNER, RELATION, COMPONENT, USERSTATUS, TEXT:
             CREATE, CHANGE, DELETE
         o   (empty):
             SAVE, DIALOG, TRACE
       Data tables and update tables
         The objects have one or more data tables. For some objects you can
         specify which of the fields specified in the structure should be
         changed. For this you must set the field in the corresponding table to X
         as in the data table. If no update-table  is transferred, then only
         those fields are set that have a value that is not initial. This
         simplifies the transfer data. However, this means it is not possible to
         delete fields. If an update structure should  only be specified for some
         data records, the table with the update fields must nonetheless have the
         same amount of lines as the data table.  The empty lines are then
         treated as if no update structure was transferred. The objects
         "Partner", "User Status", and "Text" have no update tables. The whole
         data record is always copied here.
       References
         The objects use the field REFNUMBER from the method table to refer to
         the lines in the data table. Counting always begins with 1. In doing
         this, REFNUMBER also refers to the update table. However, in the method
         table there is a second reference to higher-level objects for
         lower-levels objects. The field OBJECTKEY must be filled with  order
         number, operation number, and sub-operation number, as specified above.
         If lower-level objects of a newly-created order should be changed, then
         you must enter a temporary order number that must begin with %. Several
         orders can be numbered serially, for example, with  %00000000001,
         %00000000002 ... .
         The following objects have special treatment for REFNUMBER:
         o   Partner
         o   Texts
         Partners have an order number in the data table. During processing of
         the method table, all those entries in the data table are processed
         which have an order number that is the same as that in the line to which
         the method refers. Thus, through just one entry in the method table,
         several partners can be changed.
         Texts are composed of two tables. The first table (IT_TEXT) is made up
         of the header data of the text. Here you must specify the object and the
         first and last line of the text table (respectively inclusive, counting
         from 1). Through this, a line segment is specified in the text line
         table (IT_TEXT_LINES).
       Peculiarities in processing
         The BAPI processes the transferred methods in a particular sequence,
         which must not correspond to the sequence in the methods table.
         o   Write trace file
         o   Change user status time period 1
         o   Delete objects (dependent first)
         o   Create new objects
         o   Change existing or newly-created objects
         o   Change user status time period 2
         o   Status change of order
         o   Save data
         The methods are performed such that lower-level objects can also be
         assigned to newly-created objects. For example, first the operations are
         created, and then the components. Long texts can also be created for the
         objects.
         Components have an exceptional position. Components are created through
         the assignment to an operation, that is, using the "key" order/
         operation (item number). However, as this is not the unique component
         key, you can only access the components to change them, delete them, or
         add long texts by using the reservation number/-item, which is only
         given after saving. This means that, for example, you cannot create a
         long text when you create the component.
         User status changes can take place at two different time points. Time
         point 1 is before the object changes, time point 2 is after the object
         changes and before the status change of the system. These time points
         should be defined in the transfer table in the field CHANGE_EVENT. The
         field documentation contains the possible values.
         The external scheduling is offered by the BAPI as a special function.
         THe BAPI can set the date field directly at the operation level, and
         select the operation with the status DSEX "Date set by external system".
         This status prevents any further scheduling of the operation, it keeps
         the transferred dates. For this, set the category 'X' in the restriction
         categories. When reading the operation, this category is also returned,
         independent of the category of restriction set in the dialog. To delete
         the status, you can call up the method DELETEDSEX for the object
         operation. The external scheduling cannot be influenced in the dialog.
         All changes to the scheduling restrictions in the dialog are saved as
         normal, but are not relevant for the scheduling as long as the status
         DSEX is active.
         Every time the BAPI is called up, a SAVE or DIALOG method must be
         transferred. Normally, calling up a BAPI is seen as a transaction. All
         data that is changed in the BAPI should be saved to the database
         immediately. The BAPI checks whether a SAVE method exists, otherwise it
         terminates processing. A test run of the BAPI is composed of a normal
         call-up using the SAVE method and a subsequent
         BAPI_TRANSACTION_ROLLBACK. To call up the BAPI without the SAVE method,
         for example, to realize dialog transactions, the BAPI can be called up
         with the DIALOG method. This switches off the check for the SAVE method.
         The processor must then ensure that later either a SAVE method or a
         BAPI_TRANSACTION_ROLLBACK is called up.
         A BAPI_TRANSACTION_COMMIT without SAVE method terminates processing in
         the update to ensure that no inconsistent data is written to the
         database. The processor who called up the BAPI does not receive any
         confirmation for the termination of the update in the target system.
         This logic is necessary as the order data was flagged for updating with
         BAPI_TRANSACTION_COMMIT through the SAVE method. However, the status
         information was already flagged for updating when the BAPI was called
         up. A BAPI_TRANSACTION_COMMIT without SAVE method then just saves the
         status information and would generate inconsistent orders, if the
         updating was not terminated.
       Customer Enhancement
         The BAdI IBAPI_ALM_ORD_MODIFY can be used to change the transferred
         data. The BAdI is called up after the conversion of the transfer
         structure into the structures used internally. Additional data can be
         transferred using the table EXTENSION_IN. Only then is the data checked.
    Example
         The following examples should clarify the use.
       Creating an order
         OBJECTKEY should be filled with a temporary key. The BAPI returns  this
         key together with the assigned order number in the return table
         ET_NUMBERS . The order number in the HEADER table should also be filled
         with the number. For external number assignment, the external number
         should be specified. The update structure can be transferred if
         necessary.
         Methods table
         REFNUMBER   OBJECTTYPE  METHOD      OBJECTKEY
         1           HEADER      CREATE      %00000000001
         IT_HEADER
         ORDERID     ORDER_TYPE  PLANPLANT   ...
         %00000000001    PM01    1000        ...
       Creating an order with operation and long text
         Methods table
         REFNUMBER   OBJECTTYPE  METHOD      OBJECTKEY
         1           HEADER      CREATE      %00000000001
         1           OPERATION   CREATE      %00000000001
         1           TEXT        CREATE      %000000000010010
         IT_HEADER
         ORDERID     ORDER_TYPE  PLANPLANT   ...
         %00000000001    PM01    1000        ...
         IT_OPERATION
         ACTIVITY    SUB_ACTIVITY    CONTROL_KEY WRK_CNTR    ...
         10                      PM01        MECHANIC    ...
         IT_TEXT
         ACTIVITY    ...         TEXTSTART   TEXTEND
         10          ...         1           2
         IT_TEXT_LINES
         TDFORMAT    TDLINE
          *          Longtext for operation 10, line 1
          *          Line 2 of the long text
    Notes
       Using the BAPI to process the order data cannot support all the functions
       of the transaction. This applies in particular for the following
       functions:
         Order header data
         o   The object list cannot be processed.
         o   Refurbishment orders are not supported.
         o   The estimated costs cannot be processed - only the estimated overall
             costs of the order.
         o   Notification data cannot be processed with the order BAPI. Even if
             the settings in Customizing are such that the orders and
             notifications can be maintained on one screen, no notification is
             created for the order.
         o   Permits cannot be processed.
         o   The order addresses cannot be processed.
         o   Individual partner addresses cannot be maintained.
         o   The settlement rule cannot be maintained.
         Order functions
         o   Printing the papers is not possible.
         o   Locking and unlocking the order is not possible.
         o   Accepting and rejecting quotations is not possible.
         o   Business completion is not possible.
         o   Flagging for deletion is not possible.
         o   The log cannot be displayed.
         o   User default values are not used.
         o   The field selection is not checked.
         o   The Customer Exits/BAdIs are not executed completely.
         o   Joint ventures are not supported.
         o   Funds Management is not supported.
         o   Investment orders are not supported.
         o   No integration of service products with task lists possible.
         o   No integration of configurable service products possible.
         o   Assignment of sales document items with service products in
             accordance with the aforementioned conditions.
         Operation data
         o   A change of the control key in the operation is not possible, if
             this leads to a change of the processing type (internal-/external
             processing)
         o   User status change not possible.
         o   Production resources and tools cannot be processed.
         o   Service lines cannot be processed.
         o   Task list integration is not supported.
         o   Linking operations with object list is not supported.
         Component data
         o   User status change not possible.
         o   BOM data cannot be processed.
         o   The delivery address cannot be processed.
    Further information
         See also the documentation for the individual transfer tables.
    Parameters
         IT_METHODS
         IT_HEADER
         IT_HEADER_UP
         IT_HEADER_SRV
         IT_HEADER_SRV_UP
         IT_USERSTATUS
         IT_PARTNER
         IT_PARTNER_UP
         IT_OPERATION
         IT_OPERATION_UP
         IT_RELATION
         IT_RELATION_UP
         IT_COMPONENT
         IT_COMPONENT_UP
         IT_TEXT
         IT_TEXT_LINES
         EXTENSION_IN
         RETURN
         ET_NUMBERS
    Exceptions
    Function Group
         IBAPI_ALM_ORDER
    Regards
      Uwe

  • User exit to set user status

    Hi,
    We have a requirement to implement our own status management for SD orders. I have configured a new SD item object status profile in transaction BS02. Now I need to program the logic to update the item object status when the user is saving the sales order. I have looked at the relevant user exits in MV45AFZZ, but not found a way to update the item status upon saving. 
    Has anyone faced a similar problem and know a good way to update the item object status upon sales order save?
    Thanks in advance!
    Kind regards,
    Geir Kronkvist

    I had accomplished this requirement as follows.
    Step 1:-
    There is an SAP function module STATUS_UPDATE. This FM should be invoked in update task.
    Reason: SAP internally invokes this FM as an update task during the Sales order save process. Hence your updates should follow SAP's status update process.
    Step 2:
    Created a report program with 2 form routines to export and import JEST entries as follows.
    form set_usrstat tables it_jest_upd structure jest_upd.
    Export internal table into memory
    export it_jest_upd to memory id 'it_jest_upd'.
    Execute only after the next commit statement
    perform zset_status on commit.
    endform.
    *&      Form  set_status
          Form for updating status after commit
    form zset_status.
    data: it_jest_ins like jest_upd occurs 0,
          it_jest_upd  like jest_upd occurs 0 with header line,
          it_jsto_ins  like jsto  occurs 0,
          it_jsto_upd  like jsto_upd occurs 0,
          it_obj_del like   onr00 occurs 0.
    Import data from Memory
    import it_jest_upd from memory id 'it_jest_upd'.
    Run function module to update the status
    CALL FUNCTION 'STATUS_UPDATE' in update task
      TABLES
        jest_ins       = it_jest_ins
        jest_upd       = it_jest_upd
        jsto_ins       = it_jsto_ins
        jsto_upd       = it_jsto_upd
        obj_del        = it_obj_del
    endform.                    " zset_status
    Step 3:
    If you want to set a user status fill the i_jest_upd internal table accordingly and invoke the perform statement as follows.
    Execute only after the commit
                PERFORM set_usrstat(zsd_status_update) TABLES  i_jest_upd.

  • Set User-status for PP order

    Hi All,
    How can I set the user-status for a PP order, also let me know which user exit suits this requirement, as I know I have to make use of a FM or a BAPI which sets the user-status in the user-exit somewhere.
    Thanks
    Mark

    Hi,
    Try the following enhancements/exits for setting the status for PP order.
    STATTEXT
    CCOWB001
    COIB0001
    Regards,
    Anji

  • Set user status

    Hi,
    I am using the BAPI_SALESORDER_CREATEFROMDAT2 to create a sale order.
    I am looking for a function module to set the user status to "VALIDATE"  after the excution the previous bapi.
    Could you help me?
    Abdel

    thank you for your answers
    Done with FM status_change_intern

  • Need help on to set User status for Operations in Maintenance order

    Hi experts,
    i am new to PM module.
    i need to do BDC for IW31. i want to know some inforamtion
    on user status for each opertaion.
    my problem is ,, what is user status.
    why it is saying order is not yet released when saving and status can not set.
    in this cases how can i do BDC.

    User status are something set in the configuration and specific to the company which SAP hasn't given in the system status.
    May be in your system user status are configured to set only  after the release of the order.
    For doing the userstatus you may need to release the order, you can release the order thru bdc and then do bdc for user status. Also see below link
    http://www.sap-img.com/plant/user-status-set-date-in-maintenance-order.htm

  • Function module to set user status during QA11 transaction

    Hi ,
    Anyone knows the function module to set the user status during QA11/QA12  transaction?
    I received the user status 'e.g CFA1' from an idoc data and would like to set the user set based on this idoc value during QA11/QA12 transaction.
    Any function module for this action? BDC seems impossible..
    Thanks.
    Regards,
    Clarice.

    oh i realised this function module can be used
    STATUS_CHANGE_EXTERN
    with a commit statement..

  • Set User status of Maintenance order

    Dear All ,
    I m trying to update the user status of Maintenance order via a report .I m using the BAPI "BAPI_ISUSMORDER_USERSTATUSSET" for it.
    Code details are as follows :
    USR_STATUS-STATUS_INT  = 'E0006'      "TJ30T-ESTAT
    USR_STATUS-STATUS_EXT = 'WIPR'        "TJ30T-TXT04
    USR_STATUS-LANGU           = 'EN'.
    CALL FUNCTION 'BAPI_ISUSMORDER_USERSTATUSSET'
                EXPORTING
                  NUMBER   = WA_FINAL-AUFNR
                  STATUS   = USR_STATUS
                  INACTIVE = 'X'
                IMPORTING
                  RETURN   = WA_RETURN.
    Bapi is executing successfully but it is not updating the status when I check it from IW33 .
    Suggest me for it....
    Thanks
    Alok

    Thanks SARAVANAN ,
    I have done the bapi commit . But it have some other problem and now I have done it.
    Thanks  for ur suggestion.

Maybe you are looking for

  • Cost center in FB01 - User exit or BADI

    Hi, I would like to change the cost center field data in transaction FB01 with some other data based upon some conditions. Please suggest with user exits or badi. thanks.

  • Re:CS5 and CS6:Green Screening and seperating audio

    Would it be best to use Premier Pro or After Effects for green screening? Also how do you seperate audio from a video, can it be done on Premier Pro?

  • Popup a message and if the user doesnt answer - do something!

    Hi, I'm trying to write a simple popup message, but I want that if the user doesnt answer (press OK) for lets say - 10 seconds, I'll make 3 beeps. the value of the JOptionPane until the user is answering is UNINITIALIZED_VALUE but I cant get that val

  • Why doesn't my MacBook show up in AirDrop on my iPhone 5S?

    So I downloaded Yosemite yesterday. I was very excited to be able to AirDrop between my MacBook & my iPhone 5S, but it doesn't seem to be working properly. My iPhone shows up in AirDrop on my Mac, but my Mac doesn't show up on my iPhone. I can send f

  • ITunes won't play mpeg4

    iTunes 11.1.5.5 won't play mpeg4 (Windows 8.1).  Immediately get error message: iTunes has stopped working.  Suggestions?