Updating BOM Sub Items using CS_BC_BOM_CHANGE_BATCH_INPUT

Hello,
I am trying to update BOM sub items by using this function module. I am filling up all fields in all tables, still it is giving error.
Any body has any sample code for this function module...
Unfortunately there is no documentation for this FM and very little usage in standard programs...
Regards,
Krishna.

Hi,
My Code for create
DATA: BOM_HEADER     TYPE CAD_BICSK ,"STRUCTURE FOR HEADER DATA
      IT_BOM_ITEM    TYPE TABLE OF CAD_BOM_ITEM,"INTERNAL TABLE FOR ITEM
      WA_BOM_ITEM    TYPE CAD_BOM_ITEM,"WORK AREA FOR ITEM
      IT_BOM_SUB_ITEM  TYPE TABLE OF CSSUBITEM ,"INTERNAL TABLE FOR SUB ITEM
      WA_BOM_SUB_ITEM  TYPE CSSUBITEM ,"WORK AREA FOR SUB ITEM
      IT_DMS TYPE TABLE OF CLS_CHARAC,"INTERNAL TABLE FOR DMS_CLASS_DATA
      WA_DMS TYPE CLS_CHARAC,"WORK AREA FOR DMS_CLASS_DATA
      IT_SAP_FIELD TYPE TABLE OF RFCDMSDATA,"INTERNAL TABLE FOR SAP_FIELD_DATA
      WA_SAP_FIELD TYPE RFCDMSDATA,"WORK AREA FOR SAP_FIELD_DATA
      E_RETURN       TYPE CAD_RETURN-VALUE,"STRUCTURE FOR RETURN
      E_MESSAGE      TYPE MESSAGE-MSGTX,"STRUCTURE FOR MESSAGE
      E_MESSAGE_LEN  TYPE CAD_RETURN-MESSAGE_LEN."STRUCTURE FOR MESSAGE LENGTH
LOOP AT IT_DATA INTO WA_DATA.
    MOVE-CORRESPONDING WA_DATA TO WA_DATA1.
    APPEND WA_DATA1 TO IT_DATA1.
  ENDLOOP.
  SORT IT_DATA1 BY MATNR WERKS.
  DELETE ADJACENT DUPLICATES FROM IT_DATA1 COMPARING MATNR WERKS.
  LOOP AT IT_DATA1 INTO WA_DATA1.
    CLEAR: BOM_HEADER, WA_BOM_ITEM,WA_RET.
    REFRESH: IT_BOM_ITEM.
FILL BOM HEADER
    PERFORM DATE_FORMAT USING WA_DATA1-DATUV CHANGING BOM_HEADER-DATUV.
    BOM_HEADER-MATNR = WA_DATA1-MATNR.
    BOM_HEADER-WERKS = WA_DATA1-WERKS.
    BOM_HEADER-STLAL = WA_DATA1-STLAL.
    BOM_HEADER-STLAN = WA_DATA1-STLAN.
    BOM_HEADER-ZTEXT = WA_DATA1-ZTEXT.
    LOOP AT IT_DATA INTO WA_DATA WHERE MATNR = WA_DATA1-MATNR and werks = wa_Data1-werks.
FILL ITEM
      if wa_data-postp = 'T'.
        WA_BOM_ITEM-POSNR     = WA_DATA-POSNR.
        WA_BOM_ITEM-POSTP     = WA_DATA-POSTP.
        WA_BOM_ITEM-POTX1     = WA_DATA1-ZTEXT.
      else.
        WA_BOM_ITEM-IDNRK     = WA_DATA-IDNRK.
        WA_BOM_ITEM-POSNR     = WA_DATA-POSNR.
        WA_BOM_ITEM-POSTP     = WA_DATA-POSTP.
        WA_BOM_ITEM-MENGE     = WA_DATA-MENGE.
      endif.
      APPEND WA_BOM_ITEM TO  IT_BOM_ITEM.
    ENDLOOP.
    CALL FUNCTION 'CAD_CREATE_BOM_WITH_SUB_ITEMS'
      EXPORTING
        I_BOM_HEADER   = BOM_HEADER
      IMPORTING
        E_RETURN       = E_RETURN
        E_MESSAGE      = E_MESSAGE
      TABLES
        BOM_ITEM       = IT_BOM_ITEM
        BOM_SUB_ITEM   = IT_BOM_SUB_ITEM
        DMS_CLASS_DATA = IT_DMS
        SAP_FIELD_DATA = IT_SAP_FIELD.
    WA_RET-MATNR = WA_DATA1-MATNR.
    if e_return = 0 .
      wa_ret-status = 'SUCCESS'.
    ELSE.
      wa_ret-status = 'ERROR'.
    ENDIF.
    WA_RET-WERKS = WA_DATA1-WERKS.
    WA_RET-MSG = E_MESSAGE.
    APPEND WA_RET TO IT_RET .
  ENDLOOP.
  LOOP AT IT_RET INTO WA_RET.
    if wa_ret-status =  'ERROR'.
      APPEND wa_ret to it_erv.
      ENDIF.
    WRITE: /.
    WRITE:(12) WA_RET-MATNR,(6) WA_RET-WERKS,(8) wa_ret-status,(70) WA_RET-MSG.
  ENDLOOP.
Regards,
Manesh.R

Similar Messages

  • Function Module to Change / Update BOM Line Items

    Hi,
    I need a Function Module to Change / Update BOM Line Items.
    Please help.
    Thanks.

    Try this FM - CSAP_MAT_BOM_MAINTAIN

  • How to update 500 list items using Rest API

    Hi All,
    i have requirement that is "required to update 500 list items using rest Api".
    how can i do it,please share your thoughts with me.
    Thanks,
    Madhu.

    Didn't get you correctly, if you asking reference for REST API to update list items please refer below links
    http://msdn.microsoft.com/en-us/library/office/jj164022(v=office.15).aspx
    Destin -MCPD: SharePoint Developer 2010, MCTS:SharePoint 2007 Application Development

  • Printing SALES BOM sub items / child items

    Hi,
    We currently have SALES BOM materials setup & have sub items suppressed from printing on pick notes & delivery notes. I now have some materials which i need to be SALES BOM materials but i want the sub items to print on the pick notes & delivery notes.
    I have copied the material type into a new material type but dont know where to look where I can allow printing of sub items for this material type?? I've look in IMG & also SMARTFORMS but can find where i need to configure this.
    Can someone please help?? p.s I'm a bit of a novice so will need detailed instructions.
    Many thanks in advance
    Dean

    Please try VBAP and VSVBAP_CN tables.
    You have to take VBAP-SERNR field for your sales order and give it as input in VSVBAP_CN-SERNR and then you will get all the parent and child items. If you tell this to ABAPer, he should be able to enable this in the smartform you are going to use.
    The same field is available in VBRP also.
    Hope this helps.

  • Material Determination in BoM sub item

    Hi All,
    In our current SAP system;
    1. In quote if there is BOM material, it won't explode and it shows as one line item i.e BOM header.
    2. Now in the BoM for one sub item there is a material determination set up.
    Issue:
    When i create a order with ref to quote now BoM gets exploded and material determination is NOT taking place, I was told it Is possible to activate determination in reference mode. Any idea how i can activate this?
    Note: When I create an order with no reference BOM gets and exploded and materail determination also takes place with no issues.
    Yash

    Hi.
    Refer :
    SAP Note 486680
    SAP Note 549341
    Regards,
    Anji

  • How to Disable Event firing while updating a list item using poweshell

    Hi All,
    I am working on a powershell code which updates most of the list items in the entire web application. I am using SystemUpdate($false) to update the items so that 'modified' and 'modified By' and versions are not changed.
    However event receivers gets fired which is now a problem. I want to disable the Event receivers before update and enable it after update. I want powershell code for this. I am using SharePoint 2010.
    Your help would be much appreciated. Thank you in anticipation.
    Regards
    Karthik R.

    hi
    check this thread:
    How to disable event firing outside an event. It contains example on C#, but it is not difficult to convert it to PowerShell.
    Blog - http://sadomovalex.blogspot.com
    Dynamic CAML queries via C# - http://camlex.codeplex.com

  • Change the sales bom sub-item catetory

    Hi,
    I have created sales bom with main material assign LUMF. When I create sales order, with below feedback
    item 10 - Material A with item cate. TAP
    item 20 - Material B with item cate. TAN
    I want to change the item cate. TAN, as we r using other item cate. (ZTAN)  I have assign the item cate to sales order type
    Saty    ItCGR      USG.          HLevItCa        DfltC            MitCa
    OR      LUMP                         TAP                TAN             ZTAN

    > I have created sales bom with main material assign LUMF. When I create sales order, with below feedback
    > item 10 - Material A with item cate. TAP
    > item 20 - Material B with item cate. TAN
    > I want to change the item cate. TAN, as we r using other item cate. (ZTAN)  I have assign the item cate to sales order type
    >
    > Saty    ItCGR      USG.          HLevItCa        DfltC            MitCa
    > OR      LUMP                         TAP                TAN             ZTAN
    Hi,
    Goto the T.Code "VOV4".
    In this as you have assigned correctly,you can change manually to "ZTAN" as you have maintained it as Mitcat.
    If you want that it should come automatically while creating the order,then Maintain "ZTAN" as the Default Item category.
    Save.
    Regards,
    Krishna.

  • Multi-BOM, Sub Items

    Hi all
    I have a following scenario
    I have to sell 1 set consisting of different materials I manufactue I manufacture - how do I combine the individual items to have qty of the full set. The example is -
    In Sale Order - I wll Sale FRAME GATE (2 Set)
    This FRAME GATE is a BOM consists of Small Gate (2 pcs) and Big Gate (2 pcs)
    These Small Gate and Big Gate has its own BOM
    Now I create Production Order for Small Gate and Big Gate.
    After completetion (Receipt from Production) I get in stock 2 pc Small Gate and 2 pcs Big Gate.
    I would like to see in Stock FRAME GATE 2 Set
    How can I set this - Can it be done through Packaging ?
    Regards
    Indrajit

    Thnx to both of you for addressing the prob.
    I if create a Production order for FRAME GATE then I have to issue the small and big gate
    Can't it be in this way - When I complete the components I automatically get the stock of FRAME GATE.
    Yes you ar correct - It will be i set.
    The whole purpose is -
    I will have and can see the stock of FRAME GATE
    I will have and can see the stock of Small and Big gate
    When I will sale FRAME GATE it will automatically deduct from stock : -
    FRAME GATE - 1 set
    Small gate - 2 pc
    Big Gate - 2 pc
    Rgds

  • Simple BOM with sub-items (very very urgent)--1 item & 2 subitem

    Hi all,
    i am creating a BOM with sub-items using  'BAPI_MATERIAL_BOM_GROUP_CREATE'. while  creating sub-item, it is taking only one subitem. but i am giving multiple sub-items per item.
    i am giving a program where i am assigning 2 subitems to one item.
    after tha bapi call, 1 subitem is creating.
    i have tried so many times by clearing the work area & calling the bapi for each sub-item.but it is creating only one sub-item only.
    i am giving an example of my report.plz correct it if i am wrong.it is veryt very urgent.
    any idea will be highly appreaciated.
    Regards
    pabitra
    REPORT ZTEST_CHIN message-id 01.
    This code will create a material BoM for the material
    MAINMATERIAL with the components COMPON1 and COMPON2.
    Data Declaration
    DATA:
        it_bomgroup LIKE bapi1080_bgr_c OCCURS 0 WITH HEADER LINE,
        it_variants LIKE bapi1080_bom_c OCCURS 0 WITH HEADER LINE,
        it_items LIKE bapi1080_itm_c OCCURS 0 WITH HEADER LINE,
        it_matrel LIKE bapi1080_mbm_c OCCURS 0 WITH HEADER LINE,
        it_itemas LIKE bapi1080_rel_itm_bom_c OCCURS 0 WITH HEADER LINE,
        it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
        it_subitems LIKE bapi1080_sui_c OCCURS 0 WITH HEADER LINE,
        it_subitemas LIKE BAPI1080_REL_SUI_ITM_C OCCURS 0 WITH HEADER LINE.
    Fill the data
    Material BoM Group Header Data
    CLEAR it_bomgroup.
    it_bomgroup-bom_group_identification = 'BAPI_SMP_COL1'.
    it_bomgroup-object_type = 'BGR'.
    it_bomgroup-object_id = 'SIMPLE1'.
    it_bomgroup-bom_usage = '1'.  " YOU COULD CHANGE THE BOM USAGE TO YOUR
    it_bomgroup-ltxt_lang = sy-langu.
    it_bomgroup-technical_type = ' '.
    it_bomgroup-bom_text = 'Simple BoM - FM'.
    APPEND it_bomgroup.
    Header Details of the different variants
    CLEAR it_variants.
    it_variants-bom_group_identification = 'BAPI_SMP_COL1'.
    it_variants-object_type = 'BOM'.
    it_variants-object_id = 'SIMPLE1'.
    it_variants-alternative_bom = '01'.
    it_variants-bom_status = '01'.
    it_variants-base_qty = '1.000'.
    it_variants-valid_from_date = sy-datum.
    it_variants-function = 'NEW'.
    APPEND it_variants.
    Details of the materials of the different variants
    CLEAR it_matrel.
    it_matrel-bom_group_identification = 'BAPI_SMP_COL1'.
    it_matrel-material = 'BAPIBOMFG1'.
    it_matrel-bom_usage = '1'.
    it_matrel-alternative_bom = '01'.
    APPEND it_matrel.
    Linking subitems to the corresponding variants
    CLEAR it_subitemas.
    it_subitemas-bom_group_identification = 'BAPI_SMP_COL1'.
    it_subitemas-sub_object_type = 'SUI'.
    it_subitemas-sub_object_id = 'SIM1'.
    it_subitemas-super_object_type = 'ITM'.
    it_subitemas-super_object_id = 'SIMPLE1'.
    APPEND it_subitemas.
    Linking items to the corresponding variants
    CLEAR it_itemas.
    it_itemas-bom_group_identification = 'BAPI_SMP_COL1'.
    it_itemas-sub_object_type = 'ITM'.
    it_itemas-sub_object_id = 'SIMPLE1'.
    it_itemas-super_object_type = 'BOM'.
    it_itemas-super_object_id = 'SIMPLE1'.
    it_itemas-valid_from_date = sy-datum.
    it_itemas-function = 'NEW'.
    APPEND it_itemas.
    Details of the items of the variants
    CLEAR it_items.
    it_items-bom_group_identification = 'BAPI_SMP_COL1'.
    it_items-object_type = 'ITM'.
    it_items-object_id = 'SIMPLE1'.
    it_items-item_no = '0010'.
    it_items-item_cat = 'L'.
    it_items-component = 'BAPIBOMRW1'.
    it_items-comp_qty = '2'.
    it_items-valid_from_date = sy-datum.
    APPEND it_items.
    CLEAR it_subitems.
    it_subitems-bom_group_identification = 'BAPI_SMP_COL1'.
    it_subitems-object_type = 'SUI'.
    it_subitems-object_id = 'SIM1'.
    it_subitems-subitem_no = '0001'.
    it_subitems-INSTALLATION_POINT = 'ab1'.
    it_subitems-subitem_qty = '1'.
    APPEND it_subitems.
    CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
      EXPORTING
        all_error         = 'X'
      TABLES
        bomgroup          = it_bomgroup
        variants          = it_variants
        items             = it_items
        materialrelations = it_matrel
        itemassignments   = it_itemas
        subitems          = it_subitems
        subitemassignments = it_subitemas
        return            = it_return.
    CLEAR it_subitems.
    it_subitems-bom_group_identification = 'BAPI_SMP_COL1'.
    it_subitems-object_type = 'SUI'.
    it_subitems-object_id = 'SIM1'.
    it_subitems-subitem_no = '0002'.
    it_subitems-INSTALLATION_POINT = 'ab2'.
    it_subitems-subitem_qty = '1'.
    APPEND it_subitems.
    CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
      EXPORTING
        all_error         = 'X'
      TABLES
        bomgroup          = it_bomgroup
        variants          = it_variants
        items             = it_items
        materialrelations = it_matrel
        itemassignments   = it_itemas
        subitems          = it_subitems
        subitemassignments = it_subitemas
        return            = it_return.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    LOOP AT it_return.
      WRITE:/ it_return-type, it_return-id, it_return-number,
              it_return-message.
    ENDLOOP.

    Hi rich,
    Thanks. i will do the same.can u plz suggest me , where i am doing mistake in my coding to create sub-items in a BOM?
    Thanks & Regards
    pabi

  • Tutorial on how to update list items using ListData.svc

    Can you please point me to a tutorial which shows how to update a list item using listdata.svc and C#?
    Sorry if this is FAQ.
    I have found articles on read list... but I haven't found anything on update a list item.
    val it: unit=()

    when i try this I get an error 500
    I created an ASP.NET web application that allows the user to modify data that is stored in SharePoint I rather not go into the reasons why this application was created but focus more on why doesn't the listdata.svc allow me to update a task item that was
    created by a workflow collect data from user action.
    1. The workflow creates the item.
    I collect the item and update the item using the below code. This is not an OOTB approval workflow that is just the name I used. When I get to save changes I received the following error code.
    Dim getApprovalItem As ExpenseApprovalRuleBasedTasksItem = spContext.ExpenseApprovalRuleBasedTasks.Where(Function(i) i.Id = Pam.ApprovalItemID).FirstOrDefault
    If String.IsNullOrEmpty(getApprovalItem.AuditorApprovalValue) Then
    getApprovalItem.AuditingComments = approvalComments
    Select Case approvalDecision
    Case "Approved"
    getApprovalItem.AuditorApproval = ExpenseApprovalRuleBasedTasksAuditorApprovalValue.CreateExpenseApprovalRuleBasedTasksAuditorApprovalValue("Approved")
    getApprovalItem.AuditorApprovalValue = "Approved"
    Case "Rejected"
    getApprovalItem.AuditorApproval = ExpenseApprovalRuleBasedTasksAuditorApprovalValue.CreateExpenseApprovalRuleBasedTasksAuditorApprovalValue("Rejected")
    getApprovalItem.AuditorApprovalValue = "Rejected"
    End Select
    getApprovalItem.Outcome = "Completed"
    getApprovalItem.Status = ExpenseApprovalRuleBasedTasksStatusValue.CreateExpenseApprovalRuleBasedTasksStatusValue("Completed")
    getApprovalItem.StatusValue = "Completed"
    getApprovalItem.Complete = True
    spContext.UpdateObject(getApprovalItem)
    spContext.SaveChanges()
    End If

  • How to load long text in BOM line item

    Hello Experts
    How do i load Long text in BOM Line item using LSMW
    Thanks
    S
    Edited by: Alvaro Tejada Galindo on Jan 31, 2008 5:11 PM

    Use Read_text function module.
    you need to pass
    ID
    LANGUAGE
    NAME
    OBJECT   to the function moduel
    To find the Text id name language and object these are the following steps. Example: FB02
    1. goto FB02, Enter Document number
    2. from menuselect Goto>Header-->header Text..... New window will be displayed 
    3. select the Header Text. here you can see all the text. 
    4. click on the TEXT (which you want to know the Text id) , then press log ICON (you can find in bottom right of the text window) it looks like a rolled paper. 
    5. in the Next window you will find Text Name. Text ID, Language. etc...
    Regards,
    Lalit Mohan Gupta.

  • Sub item not appearing in consolidation.

    Hi Experts,
    We have an isse in consolidation. We have maintained few P&L GL accounts and have done some depreciation postings. How ever when we have checked in consolidation FS item is updating but sub item is(cost center) which is not updting.
    How can we update subitems in consolidation without changing the FI data. Is there any way that we can achieve this.
    Cheers
    Muralidhar

    Hi,
    In your case, Vendor Product Number (Supplier Parts Number) is required.
    Please make sure that Vendor Product Number is in catalog and contract.
    Regards,
    Masa

  • ECMA/CSOM script to update multiple list items

     i am trying update multiple list items using CSOM/ECMA script but it updates only first record. can help out .how to update multiple list item records 
    Note(sharepoint hosted APP) only client side coding solution 
    function updateListItems() {
    var itemArray = [];
    var clientContext = SP.ClientContext.get_current();
    var oList = clientContext.get_web().get_lists().getByTitle('TestList');
    for(var i = 1; i<= 5; i++){
    var oListItem = oList.getItemById(i);
    oListItem.set_item('Title', 'My Updated Item!' + i);
    oListItem.update();
    itemArray[i] = oListItem;
    clientContext.load(itemArray[i]);
    clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
    function onQuerySucceeded() {
    alert('Items Updated');
    function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    updateListItems();

    Have a look at the following link for your reference
    https://social.msdn.microsoft.com/Forums/office/en-US/fc91b7b5-6300-4302-af93-4fc697131ec5/client-object-model-update-multiple-list-items?forum=sharepointdevelopment
    You can modify CAML query to fetch rows that you want to fetch.
    Geetanjali Arora | My blogs |

  • Re-costing of header material when Sub-item material BOM is updated

    Hi ,
    A sales order is created with a header material (HM) and coressponding sub items (SM1 & SM2 ) got populated automatically from the BOM.Now the costing for this three line items happened as expected i.e.,
    For example :
    Header  Material : HM
              Sub item1 :-      SM1
              Sub item2 :-      SM2
                  MAP of Sub item 1 > SM1  = 20 USD
                  MAP of Sub item 2 > SM2  = 30 USD
    Costing in the main line item appears as 50 USD ( 20 + 30 USD) .
    Now business go to the transaction CU51 and make the changes in the sales order BOM subitem1 ,material SM1 by adding or deleting items in the BOM. After that they are trying to re-cost the sales order and it is observed that only the corresonding sub item (SM1) is getting re-costed with new value.But the header item HM is not getting updated with the new values it still have the old values .
    It would be really helpful if you can let me know what is the issue for this.
    Thanks!
    Regards,
    Dileep.

    Dear Pushpalas,
    IF my understanding is correct then the sub-items is only to split up the exact component quantity and it's usage in the exact
    production or assembly process for information or understanding purpose.
    Sub-items have no operational function in the BOM. They are not copied to the production order. However, you can use sub-
    items to help you create programs for your company (for example, automatic assembly programs).
    http://help.sap.com/erp2005_ehp_05/helpdata/EN/ea/e9b1aa4c7211d189520000e829fbbd/frameset.htm
    Regards
    Mangalraj.S

  • How to use CSAP_MAT_BOM_MAINTAIN for deleting / changing sub-items?

    I'm trying to use CSAP_MAT_BOM_MAINTAIN for BOM create / change / delete.
    Issue: This Function module is not working when I'm trying to delete / change sub-items of a BOM. I'm getting update termination (ABAP/4 processor: SAPSQL_ARRAY_INSERT_DUPREC) during BOM post.
    Is there a way to fix this?
    (1) BOM creation part is working fine
    (2) BOM item (without any sub-item change) change / delete is also working

    hi
    The following parameter are important parameter and mandatory
    Matnr ;  Enter the material Number
    BOM_USAGE : Ther many BOM available that is sales BOM and Production BOM etc  here you need to mention usage of BOM that is for sales or production
    I_STKO : Enter the BOM Header information  . Note : Ask your Functional consultand
    Apart form this parameter, all are optional so do worry
    regards
    anand kumar

Maybe you are looking for

  • IDOC Posting with new fields in VA01

    Hi, Previously i asked for creating New fields in VA01 screen. i got that now i need to create a sales order based on the Inbound IDOC  which i get and i will be getting new fields which are created . And this Fields data is coming from an Extension

  • ORA-02095 how to change db_domain

    I tried with scope=spfile and failed (Release 10.2.0.5.0). Any Idea why ? SQL> alter system set db_domain=my.new.domain scope=spfile; alter system set db_domain=my.new.domain scope=spfile ERROR at line 1: ORA-02095: specified initialization parameter

  • Movie clip path

    Ok this is driving me crazy. It is pretty simple. I just want a button I click to tell another movie clip to gotoAndPlay(2); and when I click the button nothing happens. I know the path is correct because I have the other movieclip in the _root secti

  • Video streaming freezes

    Watching videos on wireless laptop (Linksys BEFWllS4) repeatedly freeze and streaming stops. Have upgraded firmware and adjusted MTU. What to do next?

  • Broke my laptop??? [SOLVED]

    the Arch boot process is no longer displayed at full screen (1024x768) but in a small portion of the screen... Also the laptop's own bootsplash window (Dell logo) is no longer full screen.... Did I break my laptop? Or is there a simple solution to th