MM WM Stock Conversion question

We have MM stock which is non-valuated, quantity-managed stock.   MM stock is managed in a fictional plant 2000 co-mingled with the primary plant 1000.    One WM warehouse WH1 manages both plants 1000 and 2000.
Objective: Load the MM stocks into 1000, now as valuated stock.
Considered MM movement 309 but the account determination is a problem.   Stocks are moving average.   If we have 10 units in plant 1000 at $1 each, we want the transferred units to be received at $1 per unit.
Our concept (now) is to use movement type 961 (similar to 561, with customized account determination).   Data to be loaded using LSMW and flat file of current stock balances.
Would like advice on the WM stocks conversion.   The WM stocks (quants) do not move, but the new plant code is required on the quants.   Would like to simply have LSMW recording of LT01 to create transfer orders with the new plant code, but WM stock data remains the same.
Should the WM conversion be handled like a stock transfer, posting change, WM supervisor transaction, or other?
Thanks,
Mike

In my opinion you should consider the following scenario:
1) Plant 2000: remove the stock (e.g. mvt 562 etc)
2) Plant 1000: upload the stock in WM bins directly via IM mvt w/o WM transfer order (e.g. via mvt 561 - in the IM mvt you can enable the storage type and store bin fields for input) --> prerequisite is that you download the stock report before step 1 and use that data for the upload
So, I would not use WM transfer orders in the upload step. (you use LSMW, your own upload program)
That's all.

Similar Messages

  • UPGRADE 1103 to 1159 - PAYMENTS CONVERSION QUESTION!

    Hello,
    UPGRADE 1103 to 1159 - PAYMENTS CONVERSION QUESTION!
    This is the scenario, we are planning to do. Currently we have 11.0.3 in one box. We are planning for re-implementation for 11.5.9 in the new box. So we
    have to convert approx 14 months of open and closed data for the historic purposes. (Like PO's, Invoices, Payments and ledger data etc.)
    Again, these conversions cannot be handled through the front end using some Data Loader kind of tool etc...
    Data Loader tool, I used a lot for loading Flexfield Value Set Values, Category Codes etc...
    But my question is converting these AP_PAYMENTS related data in the back end. (Like Check num, Payment Batch ID, Invoice Number, Invoice ID, Supplier Number,
    Supplier ID, etc.) from old 11.0.3 box to new 11i box.
    Since there was some confusion is going on with Payments related areas, because there was now API's etc... some of them are telling it is very difficult to migrate "AS IS" into 11i. I also heard that oracle won't support this.
    Just want to clarify clearly on this issues.
    Because we are moving from the small box of 11.0.3 into Big box for 11.5.9. So we don't want to loose all the histories for about 20 months. especially open
    Closed / Open - Invoices, Payments, PO's, REQ's, Active Items which are in the Open Blanket PO's, Employees, etc...
    Of all these everything sounds like doable because they do have API's etc... Of course, I belive there is no API for the Vendors only. We want to know is this true for the Payments also.
    Any urgent clarifications is very much appreciated with clear explanation.
    Thanks in advance
    Mani Varadan

    The payment conversion is little bit tricky in term on its understanding and functionality.
    There are lot of dependices of payments conversion on the others objects like invoice.
    You need to be very clear in requirements.
    Here is the extracted documents for giving you clear understanding about payments.
    Overview of Process
    Prior to creating a payment batch, four setup are required.
    A.Define a bank for bank branches with which you do business.
    B.Define bank accounts.
    C.Choose a predefined or custom payment format.
    D.Finally, define payment documents for disbursements for each bank account.
    To give an overview of the steps required to create payment batch payments:
    1) Initiate the payment batch by entering the criteria for invoices you want to pay. The payment batch process selects invoices, and then builds the payments. It determines which invoices will be paid on each payment document, and lists this information for you on the Preliminary Payment Register.
    2) Make any necessary modifications to your payment batch, such as selecting additional invoices, deselecting invoices, deselecting suppliers, etc. Once modifications are complete, the modify payment batch process automatically builds the payments if any invoices were added.
    3) Format payments to produce an output file.
    4) Print checks from the output file if you are not creating electronic payments or sending the output file to a third party for printing.
    5) Confirm the payment batch by recording the document numbers associated with each payment. During this step, the invoice status is updated to “Paid” and a document number is associated with the invoice and invoice payment.
    As conversion(from 11.0.3 to 11.5.9) is concern step 3,4 is excluded from the standard processes.
    These are the tables involved during the payment conversion.
    AP_SELECTED_INVOICES_ALL
    AP_INV_SELECTION_CRITERIA_ALL
    AP_INVOICES_ALL
    AP_PAYMENT_SCHEDULES_ALL
    These are background (concurrent) processes involved in batch process consists of the following
    a. Autoselect      
    b. Build Payments
    c. Preliminary Payment Register
    d. Format
    e. Confirm
    f. Final Payment Register.
    10.7:
    If you are using the application in character mode, navigate to the Reset Payment Batch form. The navigation path is
    \Navigate --> Controls --> Payment --> ResetPaymentBatch.
    Select the payment batch name and the system displays the status of the batch. Your options for proceeding vary according to the batch status.
    11.5.8/9
    You can perform actions on your batch in Payment Batches form by clicking on the Actions button. The appropriate actions are highlighted depending on the status of the batch.
    THIS SECTION TALK ABOUT THE DETAIL TECHNICAL OVERVIEW
    Payment Conversion Technical Overview
    For the conversion is concern we are following four-step process
    I.Defined and prerequisite steps as discussed above
    II.Selecting the Invoice
    III.Building the Payment
    IV.Confirm
    THESE ARE THE PREREQUISITE SETUP
    We are assuming the bank set is already done from 10.7 to 11i.Bank set up means bank account id, and its corresponding payment format.
    For this purpose we are using mapping function for bank account id and on that basis we are getting corresponding checks stock id.This means defining a payment documents for disbursements
    SELECT INVOICES
    When a payment batch is started one row for each record is created in the
    AP_INV_SELECTION_CRITERIA_ALL table.
    This table stores the criteria that a payment batch uses to select invoices for payments. The module name for the Auto Select process is APXPBSEL. The Select Invoices, or AutoSelect, is the first step in the payment batch process.
    When we run a concurrent program the AutoSelect process starts by loading records that meet the invoice selection criteria into the table AP_SELECTED_INVOICES_ALL from the tables AP_INVOICES_ALL and AP_PAYMENT_SCHEDULES_ALL.
    The criteria that AutoSelect uses to determine which record to select from AP_INVOICES_ALL and AP_PAYMENT_SCHEDULES_ALL is stored in AP_INV_SELECTION_CRITERIA_ALL.
    To be sure that no duplicate invoices get selected, invoices that are already selected in another payment batch are not selected. Invoice payments that have no remaining payment amounts are not selected either.
    BUILD PAYMENTS
    The module name for the Build Program is APXPBBLD. From the list created by AutoSelect, the Build program determines which invoices will be paid on each
    Payment document, and lists this information on the Preliminary Payment Register if Selected. The Build program is spawned when AutoSelect has completed. When the Build Program starts, the application uses information from the table AP_SELECTED_INVOICES_ALL to create rows in the table AP_SELECTED_INVOICE_CHECKS_ALL.
    In addition to creating rows in the AP_SELECTED_INVOICE_CHECKS_ALL, the build payments program also performs the following tasks:
    • Assigns document numbers for payments
    • Assigns Check Ids
    • Renumbers the remaining documents starting from the first_available_document
    • Updates the payment batch status to BUILT
    Since we are doing conversion from 10.7 to 11i where all payments need to converted hence we are keeping payment batch status as ‘FORMATTED’
    CONFIRM
    This is the final step for the payment batch process, where we will pick a payment batch from front end, and then making confirm. The menu for this
    AP Payable =>Payment Batches form =>by clicking on the Actions button
    Internally the confirm program first updates the AP_SELECTED_INVOICE_CHECKS_ALL records,
    then transfers those records to
    AP_CHECKS_ALL.
    In addition, the AP_SELECTED_INVOICES_ALL
    records are transferred into the corresponding
    AP_INVOICE_PAYMENTS_ALL,
    AP_INVOICES_ALL and
    AP_PAYMENT_SCHEDULES_ALL.
    Table Involved in Payment Batch Process
    These are the various table involved in the payment process of 10.7 and 11i.It is recommended that if corresponding earlier conversion is done then use the mapping function to get the new value.
    oAP_SELECTED_INVOICES_ALL
    oAP_INV_SELECTION_CRITERIA_ALL
    oAP_INVOICES_ALL
    oAP_PAYMENT_SCHEDULES_ALL
    oAP_SELECTED_INVOICE_CHECKS_ALL
    oAP_CHECKS_ALL
    oAP_INVOICE_PAYMENTS_ALL
    oAP_PAYMENT_SCHEDULES_ALL
    oAP_INVOICES_ALL
    oAP_BANK_ACCOUNTS_ALL `
    Common Issue:
    1.Determine the status of the Payment Batch?
    A: Query up the Payment Batch in the Payment Batches Summary window to view the status. If you can not get into the application, you can select the status from SQL*Plus:
    SELECT status FROM ap_inv_selection_criteria_all
    WHERE checkrun_name = ?<payment batch name>?;
    2. Don’t change the last update date
    We are doing the conversion for payments, hence we can’t change he last_updated_date to sysdate as this will create a problem by concurrent program, in that case we need to populate the field for FUTURE_DATED_PAYMENT=’N’
    3. don’t populate the value for INVOICE_PAYMENT_TYPE
    If there are some prepayments in the conversion process donor populate this field and pass NULL, otherwise this will create a duplicate invoice, which will cause a problem for concurrent batch for payment.
    Hope now you will be very clear about the process.
    let me me offline, if you need further.
    regards
    sanjit
    [email protected]

  • Rendering Lo-Res files for inspection by stock agency questions.

    *Using FCE 4.* My stock photo agency is requesting videos now. I'm using a Canon 5D Mark II.
    What I want to do is to render low-resolution clips for the agency inspection. They will choose from the LR clips and I will then supply HR files for submission.
    I have been trying to render the lowest possible resolution files for submission and the files are ending up mostly rendered without audio. I'm sure it's something simple I'm missing but I can't seem to drink enough coffee to absorb what I'm missing from the digital manual or Tom Wolsky's book.
    That would be two questions: what settings will give me the lowest possible file size for agency inspection and how do I make sure the audio is included in the rendered LR files?
    I appreciate any help on this and I hope to bring my skill level up quickly over the next couple of months. Now I know how Photoshop beginners feel. I grew up with PS but video is a whole new world for me.
    Fred

    Bonjour (Hi)!
    (I assume that the audio is enabled in your sequence)
    So your sequence is an HD one.
    _FOR DATA DV or HARD DRIVE ARCHIVE_, same process (altough you can keep the original 1920X1080 for hard drive way):
    The simplest way is to export the sequence with the correct aspect ratio (16:9) to a smaller frame size.
    1920X1080 gives a such ratio as 640X360.
    To reduce your frame size to 640X320, no other choice than using "export->using quicktime conversion" in file menu.
    In the Save window dialog, choose "Quicktime movie" in the local format menu. Click on Options to get access to desired settings like frame size, codec, etc.
    In *Movie settings window* :
    For video: click settings to open the *Standard video compression setting window* and choose the codec (here MPEG 4) in Compression local menu (there is a selector for compressor quality, maximum data rate.
    Click OK to confirm the codec choice for video in *Standard video compression setting window*.
    In *Movie settings window* select Size to get access to *Export size settings* window. There are some presets included but you can enter custom values here. Set frame dimension as you need, but keep in mind to choose numbers that have a 16:9 ratio like 640X320 or other one.
    Desinterlace is a good option if your work with interlaced source material.
    Click OK to confirm the frame size for video in *Export size settings* window.
    For audio: click settings to get access to *Sound settings* window and choose the audio codec etc, Linear PCM at 48 kHz stereo give your the best audio from FCE. As you distribute on DATA DVD or hard drive, audio size is not an issue here.
    Confirm the codec choice with OK key in *Sound settings* window.
    Confirm the video and audio setting by clicking OK in the *Movie settings* window.
    In the Save window, name the exported movie, select a destination to save and click Save.
    The resulting file will a compressed one with all option selected. This movie is suitable for DATA DVD burning or Hard drive usage.
    TIP: There is some compression presets included in the Save window at format local menu. iPhone or Apple TV are efficient ones.
    Look at those links about video compression:
    http://www.kenstone.net/fcphomepage/qt_h-264_moviesfcp.html
    http://www.kenstone.net/fcphomepage/qt_movies_fromfcp.html
    http://www.kenstone.net/fcphomepage/video_to_ipodstone.html
    To produce a _STANDARD DEFINITION WIDESCREEN DVD_:
    Simply use the export-->quicktime movie in file menu. Select audio and video content in the Save window local menu. Check "self contained" and a destination for the movie.
    To authoring the DVD, you can use iDVD:
    there is an issue with wide screen content, see:
    http://www.fcpbook.com/Video9.html
    The other way to resolve this problem is to use Quicktime player PRO, open your wide screen exported movie and set the correct *Aperture playback* option for video track in Movie properties window (use Command-J to get this window in quicktime player PRO). Save the new version of the movie once this option selected.
    Drag your exported movie in a *wide screen iDVD project* and burn your project. iDVD will handle the frame size reduction and the compression for DVD usage. You don't have to choose option here.
    Or
    Use Roxio Toast, or Compressor if you own it (included with Final Cut Studio 2).
    The resulting DVD will be a *Standard definition wide screen* one (720X480). IMO, it's not the better way to go for material screening by agency as this DVD will have to be played with DVD player application from a computer or with a DVD player hooked on a TV set.
    NB: To burn a Blu-Ray DVD you can use Roxio Toast with the correct Roxio plugin, but it' difficult to get a BR DVD burner right now. You can use standard def DVD blank to get a BR of 20 minutes in lenght. Search this forum with "Toast Blu-Ray DVD keywords.
    Michel Boissonneault

  • Stock locator question

    hi folks,
    we have a six-segment inventory stock locator defined in KFF. we have a need to use a combination of the first 4 in some of our inventory organizations, and all 6 in the rest. is it possible to achieve this?
    thanks and regards.

    As long as the KFF does not have the 6 segments as mandatory, you can certainly create locators with just 4 segments.
    And even if it is mandatory, you can create the locators with segment5 and 6 with a default value (such as Z, 0 etc.)
    Hope this answers your question,
    Sandeep Gandhi

  • KANBAN Stock Transfer Question.

    Hi All,
    I am using kanban stock transfer stratergy(Mvmt type -311) to transfer my stock from one Sloc to another Sloc. I have given one fixed quantity and everytime that quantity is tranferred between sloc's. Now, My question is can give a tolerance limit to that kanban Quantity.
    For example, If my kanban quantity is 500 Pc's can I provide a tolerance limit of 10% so that I can transfer the stock anywhere between 450 and 550. Please let me know if this functionality is possible.
    Thanks in advance,
    Sushil

    Hi,
    As per standard SAP Practice , there is no provision of adding tolerance to Kanban Qty but you can replenish 450 /550 by manually editing the Kanban quantity in Kanban Correction.You can do Kanban correction in PK31n or directly by right click & selecting Kanban correction in Kanban Board screen.
    Other way is you can use Event driven Kanban for one time replenishment of 450/550 so that you need not disturb the main Control cycle of Classical Kanban.
    Even as per my knowledge, there is no BADI for Kanban which can help your requirement.So pls try above.
    Hope this helps.
    Revert if still any doubt.
    Regards,
    Tejas

  • Data conversion questions

    Hi Everyone,
    I'm confused by the data conversion rule and how to do it in abap, could you help me about some of my questions?
    1. How many ways to do data conversion ( like assignment .....)?
    2. When using field symbol, we know we can assign reference to field symbol , and at mean time , we can casting type.
        Is this kind of casting also a way to do data conversion?
    3. In my real case, I have unknown type data to convert to xstring. the type could be any ( I, D, T, STRING......). Is there an easy way to implement that when I get the data reference, I only need to import it to a method and then the method return an xstring to me?
    4. question 3 is about data->xstring, and how can I convert xstring back to the original data( should be the same type )?
    Thanks and Regards,
    Aaron

    Hi Aaron,
    try this FM:     CONVERSION_EXIT_ALPHA_INPUT
    is useful for convert different data type, here an example:
         call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input         =   A    ( type unknown )
              importing
                output        =  B  ( type xstring ).
    Perhaps that helps,
    Regards,
    Davide

  • GL Balances Conversion Question

    Hi,
    Recently I started working in oracle apps so you can consider me as a beginer.Now; I'm working on a GL Conversion project. We have balances from 2003. It has been decided that we will convert the balances from 2003-2006 and for 2007, 2008 we will convert in detail (every journal). We also use multiple currencies. My question is on extracting the balances. There are various values for Translated flag and some thing about BEQ columns.
    I will appreciate, if you can tell me what balances I should extract for conversion purposes.
    Thanks for your help !!
    Shreekar.

    Can you give me details of what you have done?? i have the same issue and i do not know what has to be done
    Thank you!

  • Video Conversion Questions

    Am having a couple of problems with video conversion for the Apple TV.
    I had to reset and install OSX a few months back, now when I use FFMPEGX to convert some AVI files to H264 it is writing the audio and video as seperate files, cant understand why its suddenly doing this as worked fine before, anyone got any ideas?
    Secondly, If I try to use Quicktime, Flip4mac writes that it was done with a trial version all over the video output, but I have the Pro Version of Quicktime so can't understand why it uses flip4mac at all, isnt Quicktime supposed to do this by itself, and is there a way round this, short of buying flip4mac?

    when I use FFMPEGX to convert some AVI files to H264 it is writing the audio and video as seperate files
    Sounds like FFMPEG is doing this. Check the source codecs and/or your default/manual settings. Some conversions may require an intermediate conversion in which the audio and video are first "demuxed" and placed in separate files which are them converted to the final compression formats and then merged to a single file.
    Secondly, If I try to use Quicktime, Flip4mac writes that it was done with a trial version all over the video output, but I have the Pro Version of Quicktime so can't understand why it uses flip4mac at all, isnt Quicktime supposed to do this by itself, and is there a way round this, short of buying flip4mac?
    While QT recognizes the AVI file container (i.e., AVI is not a compression format), you must have the same codecs to make the file (many combinations are possible) playable and/or convertible to a fully supported QT compression format. QT does not supply proprietary interleaved codecs and you must install your own. DivX, Flip4Mac, Perian, etc. all have codecs that play different codecs that may be contained in the AVI container. As long as there are no conflicts, then everything works fine. In some cases, however, two or more components may be able to play/convert the same codec. In this event, QT seems to call the handler which was last installed. If this is the case, then you may be able to remove/re-install codecs in a different order which satisfies your needs. In other cases, the codec in question may only be supplied one of the third-party providers and you have no choice but to use their product. Some of the providers allow you to play the codecs in question but require you to purchase conversion decoders and/or decoders separately. (E.g., DivX and Flip4Mac.) Whether or not you purchase these products depends on how badly you want to convert the file in question.

  • Frame Rate Conversion Question...

    I have a bit of a mess here. I shot a film on the Canon XL2 at 24p. I digitized the footage in my old Avid system as a 23.976fps project and edited the entire movie. When I burned the movie to disk it had all kinds of skipping problems with the image. I wasn't sure what I had done wrong because if you shoot at 24p it should have been fine as a 23.976 project in Avid. But the XL2 apparently records at 23.976 fps, while inserting 6 frames every second to create a 30fps master tape. So I was supposed to import the footage into a 30i project. I've subsequently shot a short on the XL2 and digitized it at 30i and it turned out fine.
    So here's my question. I have since switched over to FCP and I know with Automatic Duck I can convert the project from an Avid to a FCP project. However, I'm still going to have the frame rate problem. Does anyone know what my options are here? Is it possible to create a 30i project, bring in the 23.976 sequence and recapture the footage at the correct frame rate?

    I have since switched over to FCP and I know with Automatic Duck I can convert the project from an Avid to a FCP project.
    Automatic Duck doesn't do project conversions. Only sequence conversions. It won't do all the media, or bins. Only the media in a sequence.
    Shane

  • Where to ask conversion question

    I want to ask a question about PAL to NTSC conversion. What's the right forum for that? Is there one? Should I ask here?,
    Ross

    My recommendation -
    Using MPEG Streamclip, convert the PAL DVD to QuickTime/Apple DV PAL.
    In FCE, change your Easy Setup to DV PAL; create a new sequence; import the QuickTime/Apple DV PAL file you exported from MPEG Streamclip.  Do your editing (if any).  Export to QuickTime Movie. Non-self contained is fine.
    In iDVD, set your Projects > Video Mode preference to NTSC, with encoding =  High Quality or Professional Quality.  Import the QT Movie that you exported from FCE.  Create whatever menus you want.  Burn your DVD.  You will get an NTSC DVD that will play just fine in most USA DVD players.  I have done this and think the resulting quality is pretty good.
    iDVD has the capability to convert PAL>NTSC and NTSC>PAL.  I have experimented with this and think the quality is quite good.
    There are more complex ways to convert between PAL and NTSC.  JES Deinterlacer has the capability but I think other methods produce better results.  The iDVD method is basically free.  The only better alternative that I have experience with is Graeme Nattress' Standards Conversion, which works really well but it costs $100 and because it was designed for FCPro, it requires some workarounds to use in FCE.

  • ATX conversion question

    Hi,
    I'm converting an ATX PSU to work on a Sawtooth.
    One of the pins that needs conversion is the -5 volt ATX pin(white wire pin #18) to ground for the Sawtooth. However, the ATX unit I have does not have a -5 volt pin. The slot on the connector where pin #18 would live is vacant. My question is, should I supply a ground wire there, or leave it vacant for the Sawtooth?
    Appreciate it, thanks
    medinaray

    I followed the diagram here. the -5v is discarded. I unsoldered mine from the PSU board.
    http://atxg4.com/sawtooth.html
    Message was edited by: kmac1036

  • General CS4 Trial Conversion Questions

    Well, this doesn't have to do with After Effects specifically but this was the most active section and there wasn't a section that dealt with general questions. I'm currently an owner of the Creative Suite 3 Master Collection. I'm about to buy the trial DVD set for the CS4 Master Collection. However, I was curious as to what additional content specifically will I have to download when I convert my trial to the full product. The reason for this is that I'm a little bit pressed for space. So if anyone has bought the trial and then converted, can you tell me what additional download content is there specifically?

    I don't think it's anything too important. Just some optional plugins, scripts and templates/ stock files for Photoshop and InDesign and some additional templates for Encore. If you are not using any of them, then you will not need additional space. Most other components are already on your drive once you install the trial, they are just inert and will only appear once you input your serial. Premiere and Encore will install some CoDecs for HDV, MXF and other formats, AE will enable mochaAE, the CC Plugins and Keylight...
    Mylenium

  • VB6 Conversion Question

    Ok...I;m in the process of converting a large VB6 MP3 player to .NET. A long long time ago I wrote the vb6 player. The question is sort of simple. 
    Background: Old copies of the VB6 program run on the preview (9879), but I want to convert it to .net and I have vb2008 on this preview system to do the conversion and want to do it only there's a source build problem.
    Somehow mscomctllib is not being found to build it to convert it. I rather suspect that the problem is is in finding mscomctl.ocx.
    But who knows? VB6 used sealed build procedures and one can not tell where the system is looking for mscomctl.ocx. Yes. I can dump a version of the old executable and see a reference to mscomctl.ocx but that has no complete filespec which leads me to believe
    that it should be in Renclock.exe's default directory.
    Renee
    "MODERN PROGRAMMING is deficient in elementary ways BECAUSE of problems INTRODUCED by MODERN PROGRAMMING." Me

    I have a lead. I've looking in the wrong place. I needed to dump the VB sealed build file.
    To me, this says that its looking for a Guid!!!! My guess is that since this is a different system, that the GUID has changed.
    Renee
    "MODERN PROGRAMMING is deficient in elementary ways BECAUSE of problems INTRODUCED by MODERN PROGRAMMING." Me

  • Stock report Question

    I am trying to wright a simple Stock report and i am running into difficulties - any expert advice would be appreciated:
    The report should have the following fileds:
    Item Group, Item Code, Item Description, In Stock Quantity, Stock Value.
    The report should summarise by Item Group with Sub Totals.
    I have tried several methods and I failed with all of them:
    A Using Report Composer, I managed to Place the first 3 Fields and checked that this worked OK, and then converted this to an XL Reportt Definition. But, this Definition did not give any results when I ran it.
    B. I started a new XL Definition using the Advanced Formula builder and managed to place all the fields but was not able to Group the records by using the XL Sub Total function.- this gave me only a total for all the records. I think I have done the procedure correctly but for some reason the SubTotal function within XL reporter does not give the expected result.
    C. I have used the Grouping function within the Advanced Formula Builder but this did not work either
    I wonder if anybody else experienced this type of problem because I suspect that something is wrong with the XL reporter?
    Thank you
    Robert

    Hi Gordon
    The reason I say that it might be a bug is the fact that when I get the #N/A in the cell I can go to another cell that has the COLUMN TOTAL formula and copy and paste and it seems to work OK.  Also, I can put  in the Formula manually (if I remember the syntax correctly...)
    The frustration I have with the XL reporter is in the fact that it is a good product but to get the right result you need to "Experiment and guess" as to what the result will be. It is more of an "Art" then a preciese "Science". I can now write reports but I still do not understand when and why the report works. Perhaps SAP should give some guidlines of what "Kind" of combination may or may not work.
    I do fully understand the construction of relational database tables and the links between them, but the XL reporter does not seem to have a logical approach for the end user to help construct a report so the only practical approach seems to be "trial and error"
    One basic helpful hint seems to be that you need to have a Light Dimention Value field in order for a report to work - but I am not sure why this is the case.
    Thanks for your remrks, they certaily point me in the right direction
    Robert

  • ABAP Rountine Conversion question

    This is a routine that was migrated from 3.5. Here is the code I have, I've bolded the area that's throwing the error message:
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        DATA:
          p_check_master_data_exist
                TYPE RSODSOCHECKONLY READ-ONLY,
    *-    Instance for getting request runtime attributs;
        Available information: Refer to methods of
        interface 'if_rsbk_request_admintab_view'
          p_r_request
                TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
      PRIVATE SECTION.
        TYPE-POOLS: rsd, rstr.
      Rule specific types
        TYPES:
          BEGIN OF tys_SC_1,
         Field: SHKZG Debit/credit.
            SHKZG           TYPE C LENGTH 1,
         Field: ZZ_QUAN Quantity.
            ZZ_QUAN           TYPE P LENGTH 7 DECIMALS 3,
          END   OF tys_SC_1.
        TYPES:
          BEGIN OF tys_TG_1,
         InfoObject: 0COPASLQTY Sales quantity.
            COPASLQTY           TYPE /BI0/OICOPASLQTY,
          END   OF tys_TG_1.
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ end of global - insert your declaration only before this line   -
        METHODS
          compute_0COPASLQTY
            IMPORTING
              request                  type rsrequest
              datapackid               type rsdatapid
              SOURCE_FIELDS              type tys_SC_1
            EXPORTING
              RESULT                   type tys_TG_1-COPASLQTY
              monitor                  type rstr_ty_t_monitor
            RAISING
              cx_rsrout_abort
              cx_rsrout_skip_record
              cx_rsrout_skip_val.
        METHODS
          invert_0COPASLQTY
            IMPORTING
              i_th_fields_outbound         TYPE rstran_t_field_inv
              i_r_selset_outbound          TYPE REF TO cl_rsmds_set
              i_is_main_selection          TYPE rs_bool
              i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
              i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
            CHANGING
              c_th_fields_inbound          TYPE rstran_t_field_inv
              c_r_selset_inbound           TYPE REF TO cl_rsmds_set
              c_exact                      TYPE rs_bool.
    ENDCLASS.                    "routine DEFINITION
    $$ begin of 2nd part global - insert your code only below this line  *
    $$ end of rule type
        TYPES:
          BEGIN OF tys_TG_1_full,
         InfoObject: 0COMP_CODE Company code.
            COMP_CODE           TYPE /BI0/OICOMP_CODE,
         InfoObject: 0FISCPER Fiscal year / period.
            FISCPER           TYPE /BI0/OIFISCPER,
         InfoObject: 0AC_DOC_NO Accounting document number.
            AC_DOC_NO           TYPE /BI0/OIAC_DOC_NO,
         InfoObject: 0ITEM_NUM Number of line item within accounting docum
    *ent.
            ITEM_NUM           TYPE /BI0/OIITEM_NUM,
         InfoObject: 0FI_DOCSTAT Item Status.
            FI_DOCSTAT           TYPE /BI0/OIFI_DOCSTAT,
         InfoObject: 0CHRT_ACCTS Chart of accounts.
            CHRT_ACCTS           TYPE /BI0/OICHRT_ACCTS,
         InfoObject: 0GL_ACCOUNT G/L Account.
            GL_ACCOUNT           TYPE /BI0/OIGL_ACCOUNT,
         InfoObject: 0ACCT_TYPE Account type.
            ACCT_TYPE           TYPE /BI0/OIACCT_TYPE,
         InfoObject: 0SP_GL_IND Special G/L indicator.
            SP_GL_IND           TYPE /BI0/OISP_GL_IND,
         InfoObject: 0AC_DOC_TYP Document type.
            AC_DOC_TYP           TYPE /BI0/OIAC_DOC_TYP,
         InfoObject: 0POST_KEY Posting key.
            POST_KEY           TYPE /BI0/OIPOST_KEY,
         InfoObject: 0FISCVARNT Fiscal year variant.
            FISCVARNT           TYPE /BI0/OIFISCVARNT,
         InfoObject: 0DOC_DATE Document Date.
            DOC_DATE           TYPE /BI0/OIDOC_DATE,
         InfoObject: 0PSTNG_DATE Posting date in the document.
            PSTNG_DATE           TYPE /BI0/OIPSTNG_DATE,
         InfoObject: 0CREATEDON Date on which the record was created.
            CREATEDON           TYPE /BI0/OICREATEDON,
         InfoObject: 0VALUE_DATE Value Date.
            VALUE_DATE           TYPE /BI0/OIVALUE_DATE,
         InfoObject: 0CLEAR_DATE Clearing date.
            CLEAR_DATE           TYPE /BI0/OICLEAR_DATE,
         InfoObject: 0CLR_DOC_NO Clearing Document Number.
            CLR_DOC_NO           TYPE /BI0/OICLR_DOC_NO,
         InfoObject: 0CO_AREA Controlling area.
            CO_AREA           TYPE /BI0/OICO_AREA,
         InfoObject: 0COSTCENTER Cost Center.
            COSTCENTER           TYPE /BI0/OICOSTCENTER,
         InfoObject: 0PROFIT_CTR Profit Center.
            PROFIT_CTR           TYPE /BI0/OIPROFIT_CTR,
         InfoObject: 0COORDER Order number.
            COORDER           TYPE /BI0/OICOORDER,
         InfoObject: 0WBS_ELEMT Work Breakdown Structure Element (WBS Elem
    *ent).
            WBS_ELEMT           TYPE /BI0/OIWBS_ELEMT,
         InfoObject: 0PLANT Plant.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: 0BUS_AREA Business area.
            BUS_AREA           TYPE /BI0/OIBUS_AREA,
         InfoObject: 0FUNC_AREA Functional area.
            FUNC_AREA           TYPE /BI0/OIFUNC_AREA,
         InfoObject: 0PART_PRCTR Partner profit center.
            PART_PRCTR           TYPE /BI0/OIPART_PRCTR,
         InfoObject: 0PCOMPANY Partner company number.
            PCOMPANY           TYPE /BI0/OIPCOMPANY,
         InfoObject: 0PBUS_AREA Trading partner business area of the busin
    *ess partner.
            PBUS_AREA           TYPE /BI0/OIPBUS_AREA,
         InfoObject: 0LOC_CURRCY Local currency.
            LOC_CURRCY           TYPE /BI0/OILOC_CURRCY,
         InfoObject: 0DEBIT_LC Debit amount in local currency.
            DEBIT_LC           TYPE /BI0/OIDEBIT_LC,
         InfoObject: 0CREDIT_LC Credit amount in local currency.
            CREDIT_LC           TYPE /BI0/OICREDIT_LC,
         InfoObject: 0DEB_CRE_LC Amount in Local Currency with +/- Signs.
            DEB_CRE_LC           TYPE /BI0/OIDEB_CRE_LC,
         InfoObject: 0DOC_CURRCY Document currency.
            DOC_CURRCY           TYPE /BI0/OIDOC_CURRCY,
         InfoObject: 0DEBIT_DC Debit amount in foreign currency.
            DEBIT_DC           TYPE /BI0/OIDEBIT_DC,
         InfoObject: 0CREDIT_DC Credit amount in foreign currency.
            CREDIT_DC           TYPE /BI0/OICREDIT_DC,
         InfoObject: 0DEB_CRE_DC Foreign currency amount with signs (+/-).
            DEB_CRE_DC           TYPE /BI0/OIDEB_CRE_DC,
         InfoObject: 0LOC_CURTP2 Currency Type of Second Local Currency.
            LOC_CURTP2           TYPE /BI0/OILOC_CURTP2,
         InfoObject: 0LOC_CURRC2 Second Local Currency.
            LOC_CURRC2           TYPE /BI0/OILOC_CURRC2,
         InfoObject: 0DEBIT_LC2 Debit Amount in 2nd Local Currency.
            DEBIT_LC2           TYPE /BI0/OIDEBIT_LC2,
         InfoObject: 0CREDIT_LC2 Credit Amount in Second Local Currency.
            CREDIT_LC2           TYPE /BI0/OICREDIT_LC2,
         InfoObject: 0DEB_CRE_L2 Amount in Second Local Currency with +/-
    *Sign.
            DEB_CRE_L2           TYPE /BI0/OIDEB_CRE_L2,
         InfoObject: 0LOC_CURTP3 Currency Type of Third Local Currency.
            LOC_CURTP3           TYPE /BI0/OILOC_CURTP3,
         InfoObject: 0LOC_CURRC3 Third Local Currency.
            LOC_CURRC3           TYPE /BI0/OILOC_CURRC3,
         InfoObject: 0DEBIT_LC3 Debit Amount in Third Local Currency.
            DEBIT_LC3           TYPE /BI0/OIDEBIT_LC3,
         InfoObject: 0CREDIT_LC3 Credit Amount in Third Local Currency.
            CREDIT_LC3           TYPE /BI0/OICREDIT_LC3,
         InfoObject: 0DEB_CRE_L3 Amount in Third Local Currency with +/- S
    *ign.
            DEB_CRE_L3           TYPE /BI0/OIDEB_CRE_L3,
         InfoObject: 0REF_DOC_NO Reference document number.
            REF_DOC_NO           TYPE /BI0/OIREF_DOC_NO,
         InfoObject: 0REF_KEY3 Reference Key 3.
            REF_KEY3           TYPE /BI0/OIREF_KEY3,
         InfoObject: 0ORG_DOC_NO Document Number of Source Document.
            ORG_DOC_NO           TYPE /BI0/OIORG_DOC_NO,
         InfoObject: 0ORG_DOC_YR Fiscal Year for Source Document Number.
            ORG_DOC_YR           TYPE /BI0/OIORG_DOC_YR,
         InfoObject: 0ORG_DOC_CC Company Code for Source Document Number.
            ORG_DOC_CC           TYPE /BI0/OIORG_DOC_CC,
         InfoObject: 0ORG_DOC_CO Controlling Area for Source Document Numb
    *er.
            ORG_DOC_CO           TYPE /BI0/OIORG_DOC_CO,
         InfoObject: 0POSTXT Item Text.
            POSTXT           TYPE /BI0/OIPOSTXT,
         InfoObject: 0RECORDMODE BW Delta Process: Record Mode.
            RECORDMODE           TYPE RODMUPDMOD,
         InfoObject: 0ALLOC_NMBR Allocation Number.
            ALLOC_NMBR           TYPE /BI0/OIALLOC_NMBR,
         InfoObject: 0COPASLQTY Sales quantity.
            COPASLQTY           TYPE /BI0/OICOPASLQTY,
         InfoObject: 0COPASLQTU Sales unit.
            COPASLQTU           TYPE /BI0/OICOPASLQTU,
         InfoObject: ZTRANSTYP Transaction Type.
            /BIC/ZTRANSTYP           TYPE /BIC/OIZTRANSTYP,
         InfoObject: 0FI_DBCRIND Debit/Credit Indicator.
            FI_DBCRIND           TYPE /BI0/OIFI_DBCRIND,
         InfoObject: 0ASSET_MAIN Main Asset Number.
            ASSET_MAIN           TYPE /BI0/OIASSET_MAIN,
         InfoObject: 0JV_RECIND Joint Venture Recovery Indicator.
            JV_RECIND           TYPE /BI0/OIJV_RECIND,
         InfoObject: ZTBSETPER Settlement Period.
            /BIC/ZTBSETPER           TYPE /BIC/OIZTBSETPER,
         Field: RECORD Data record number.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1_full.
        TYPES:
          BEGIN OF tys_SC_1__RULE_63,
         Field: SHKZG Debit/credit.
            SHKZG           TYPE C LENGTH 1,
         Field: ZZ_QUAN Quantity.
            ZZ_QUAN           TYPE P LENGTH 7 DECIMALS 3,
          END   OF tys_SC_1__RULE_63.
    Additional declaration for transfer rule interface
      DATA:
        g_t_errorlog TYPE rssm_t_errorlog_int,
        RECORD_ALL   LIKE SY-TABIX.
    global definitions from transfer rules
    TABLES: ...
    DATA:   ...
    FORM compute_COPASLQTY
       USING
         RECORD_NO      type sy-tabix
         TRAN_STRUCTURE type tys_SC_1__RULE_63
       CHANGING
        RESULT         TYPE tys_TG_1_full-COPASLQTY
        RETURNCODE     LIKE sy-subrc
        ABORT          LIKE sy-subrc
      RAISING
        cx_sy_arithmetic_error
        cx_sy_conversion_error.
    DATA: l_s_errorlog TYPE rssm_s_errorlog_int.
      If TRAN_STRUCTURE-SHKZG = 'S'.
         RESULT = TRAN_STRUCTURE-ZZ_QUAN * -1.
      ELSE.
        RESULT = TRAN_STRUCTURE-ZZ_QUAN.
      ENDIF.
    returncode <> 0 means skip this record
      RETURNCODE = 0.
    abort <> 0 means skip whole data package !!!
      ABORT = 0.
    ENDFORM.                    "COPASLQTY
    $$ end of 2nd part global - insert your code only before this line   *
          CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
      METHOD compute_0COPASLQTY.
      IMPORTING
        request     type rsrequest
        datapackid  type rsdatapid
        SOURCE_FIELDS-SHKZG TYPE C LENGTH 000001
        SOURCE_FIELDS-ZZ_QUAN TYPE P LENGTH 000007 DECIMALS 000003
       EXPORTING
         RESULT type tys_TG_1-COPASLQTY
        DATA:
          MONITOR_REC    TYPE rsmonitor.
    *$*$ begin of routine - insert your code only below this line        *-*
      Data:
        l_s_error_log    type rssm_s_errorlog_int,
        TRAN_STRUCTURE   type tys_SC_1__RULE_63,
        l_subrc          type sy-tabix,
        l_abort          type sy-tabix,
        ls_monitor       TYPE rsmonitor,
        ls_monitor_recno TYPE rsmonitors.
    REFRESH:
      monitor,
      monitor_recno.
    Migrated transfer rule call
      MOVE-CORRESPONDING SOURCE_FIELDS to TRAN_STRUCTURE.
      *Perform compute_COPASLQTY*
        *USING*
          *SOURCE_FIELDS-record*
          *TRAN_STRUCTURE*
        *CHANGING*
          *RESULT*
          *l_subrc*
          *l_abort.*
    *-- Convert Messages in Transformation format
        LOOP AT G_T_ERRORLOG INTO l_s_error_log.
          move-CORRESPONDING l_s_error_log to MONITOR_REC.
          append monitor_rec to MONITOR.
        ENDLOOP.
        IF l_subrc <> 0.
          RAISE EXCEPTION TYPE cx_rsrout_skip_val.
        ENDIF.
        IF l_abort <> 0.
          RAISE EXCEPTION TYPE CX_RSROUT_ABORT.
        ENDIF.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "compute_0COPASLQTY
          Method invert_0COPASLQTY
          This subroutine needs to be implemented only for direct access
          (for better performance) and for the Report/Report Interface
          (drill through).
          The inverse routine should transform a projection and
          a selection for the target to a projection and a selection
          for the source, respectively.
          If the implementation remains empty all fields are filled and
          all values are selected.
      METHOD invert_0COPASLQTY.
    $$ begin of inverse routine - insert your code only below this line-
    ... "insert your code here
    $$ end of inverse routine - insert your code only before this line -
      ENDMETHOD.                    "invert_0COPASLQTY
    ENDCLASS.                    "routine IMPLEMENTATION

    Here was the orignal code. I've migrated the datasource now, and basically have started over using the 7.0 flow. We have a full 7.0 implemention, but the consultants chose not to migrate the Business Content, and built out the dataflow using 3.5 functionality. This routine is the only issue I'm having. It is flipping the sign. The above code is what BW did with the code when I created a transformation from the original rule.
    PROGRAM CONVERSION_ROUTINE.
    Type pools used by conversion program
    TYPE-POOLS: RS, RSARC, RSARR, SBIWA, RSSM.
    Declaration of transfer structure (selected fields only)
    TYPES: BEGIN OF TRANSFER_STRUCTURE ,
      InfoObject 0COMP_CODE: CHAR - 000004
      BUKRS(000004) TYPE C,
      InfoObject 0FISCPER: NUMC - 000007
      FISCPER(000007) TYPE N,
      InfoObject 0AC_DOC_NO: CHAR - 000010
      BELNR(000010) TYPE C,
      InfoObject 0ITEM_NUM: NUMC - 000003
      BUZEI(000003) TYPE N,
      InfoObject 0FI_DOCSTAT: CHAR - 000001
      STATUSPS(000001) TYPE C,
      InfoObject 0CHRT_ACCTS: CHAR - 000004
      KTOPL(000004) TYPE C,
      InfoObject 0GL_ACCOUNT: CHAR - 000010
      HKONT(000010) TYPE C,
      InfoObject 0ACCT_TYPE: CHAR - 000001
      KOART(000001) TYPE C,
      InfoObject 0SP_GL_IND: CHAR - 000001
      UMSKZ(000001) TYPE C,
      InfoObject 0AC_DOC_TYP: CHAR - 000002
      BLART(000002) TYPE C,
      InfoObject 0POST_KEY: CHAR - 000002
      BSCHL(000002) TYPE C,
      InfoObject 0FISCVARNT: CHAR - 000002
      FISCVAR(000002) TYPE C,
      InfoObject 0DOC_DATE: DATS - 000008
      BLDAT(000008) TYPE D,
      InfoObject 0PSTNG_DATE: DATS - 000008
      BUDAT(000008) TYPE D,
      InfoObject 0CREATEDON: DATS - 000008
      CPUDT(000008) TYPE D,
      InfoObject 0VALUE_DATE: DATS - 000008
      VALUT(000008) TYPE D,
      InfoObject 0CLEAR_DATE: DATS - 000008
      AUGDT(000008) TYPE D,
      InfoObject 0CLR_DOC_NO: CHAR - 000010
      AUGBL(000010) TYPE C,
      InfoObject 0CO_AREA: CHAR - 000004
      KOKRS(000004) TYPE C,
      InfoObject 0COSTCENTER: CHAR - 000010
      KOSTL(000010) TYPE C,
      InfoObject 0PROFIT_CTR: CHAR - 000010
      PRCTR(000010) TYPE C,
      InfoObject 0COORDER: CHAR - 000012
      AUFNR(000012) TYPE C,
      InfoObject  : NUMC - 000008
      PROJK(000008) TYPE N,
      InfoObject 0PLANT: CHAR - 000004
      WERKS(000004) TYPE C,
      InfoObject 0BUS_AREA: CHAR - 000004
      GSBER(000004) TYPE C,
      InfoObject 0FUNC_AREA: CHAR - 000004
      FKBER(000004) TYPE C,
      InfoObject 0PART_PRCTR: CHAR - 000010
      PPRCT(000010) TYPE C,
      InfoObject 0PBUS_AREA: CHAR - 000004
      PARGB(000004) TYPE C,
      InfoObject 0PCOMPANY: CHAR - 000006
      VBUND(000006) TYPE C,
      InfoObject 0LOC_CURRCY: CUKY - 000005
      LCURR(000005) TYPE C,
      InfoObject 0DEBIT_LC: CURR - 000013
      DMSOL(000007) TYPE P,
      InfoObject 0CREDIT_LC: CURR - 000013
      DMHAB(000007) TYPE P,
      InfoObject 0DEB_CRE_LC: CURR - 000013
      DMSHB(000007) TYPE P,
      InfoObject 0DOC_CURRCY: CUKY - 000005
      WAERS(000005) TYPE C,
      InfoObject 0DEBIT_DC: CURR - 000013
      WRSOL(000007) TYPE P,
      InfoObject 0CREDIT_DC: CURR - 000013
      WRHAB(000007) TYPE P,
      InfoObject 0DEB_CRE_DC: CURR - 000013
      WRSHB(000007) TYPE P,
      InfoObject 0LOC_CURTP2: CHAR - 000002
      CURT2(000002) TYPE C,
      InfoObject 0LOC_CURRC2: CUKY - 000005
      HWAE2(000005) TYPE C,
      InfoObject 0DEBIT_LC2: CURR - 000013
      DMSO2(000007) TYPE P,
      InfoObject 0CREDIT_LC2: CURR - 000013
      DMHA2(000007) TYPE P,
      InfoObject 0DEB_CRE_L2: CURR - 000013
      DMSH2(000007) TYPE P,
      InfoObject 0LOC_CURTP3: CHAR - 000002
      CURT3(000002) TYPE C,
      InfoObject 0LOC_CURRC3: CUKY - 000005
      HWAE3(000005) TYPE C,
      InfoObject 0DEBIT_LC3: CURR - 000013
      DMSO3(000007) TYPE P,
      InfoObject 0CREDIT_LC3: CURR - 000013
      DMHA3(000007) TYPE P,
      InfoObject 0DEB_CRE_L3: CURR - 000013
      DMSH3(000007) TYPE P,
      InfoObject 0REF_DOC_NO: CHAR - 000016
      XBLNR(000016) TYPE C,
      InfoObject 0REF_KEY3: CHAR - 000020
      XREF3(000020) TYPE C,
      InfoObject 0ORG_DOC_NO: CHAR - 000010
      AWREF(000010) TYPE C,
      InfoObject 0ORG_DOC_YR: NUMC - 000004
      AWGJA(000004) TYPE N,
      InfoObject 0ORG_DOC_CC: CHAR - 000004
      AWBUK(000004) TYPE C,
      InfoObject 0ORG_DOC_CO: CHAR - 000004
      AWKOK(000004) TYPE C,
      InfoObject 0POSTXT: CHAR - 000050
      SGTXT(000050) TYPE C,
      InfoObject 0RECORDMODE: CHAR - 000001
      UPDMOD(000001) TYPE C,
      InfoObject 0WBS_ELEMT: CHAR - 000024
      PS_POSID(000024) TYPE C,
      InfoObject 0ALLOC_NMBR: CHAR - 000018
      ZUONR(000018) TYPE C,
      InfoObject 0COPASLQTU: UNIT - 000003
      ZZ_MEINS(000003) TYPE C,
      InfoObject 0COPASLQTY: QUAN - 000013
        ZZ_QUAN(000007) TYPE P
                                            DECIMALS 000003,
      InfoObject ZTRANSTYP: CHAR - 000003
      BEWAR(000003) TYPE C,
      InfoObject 0FI_DBCRIND: CHAR - 000001
        SHKZG(000001) TYPE C,
    END OF TRANSFER_STRUCTURE .
    Global code used by conversion rules
    $$ begin of global - insert your declaration only below this line  -
    TABLES: ...
    DATA:   ...
    $$ end of global - insert your declaration only before this line   -
          FORM COMPUTE_COPASLQTY
    Compute value of InfoObject 0COPASLQTY
    in communication structure /BIC/CS0FI_GL_4
    Technical properties:
        field name      = COPASLQTY
        data element    = /BI0/OICOPASLQTY
        data type       = QUAN
        length          = 000017
        decimals        = 000003
        ABAP type       = P
        ABAP length     = 000009
        reference field = 0COPASLQTU
    Parameters:
    -->  RECORD_NO       Record number
    -->  TRAN_STRUCTURE  Transfer structure
    <--  RESULT          Return value of InfoObject
    <->  G_T_ERRORLOG    Error log
    <--  RETURNCODE      Return code (to skip one record)
    <--  ABORT           Abort code (to skip whole data package)
    FORM COMPUTE_COPASLQTY
      USING    RECORD_NO LIKE SY-TABIX
               TRAN_STRUCTURE TYPE TRANSFER_STRUCTURE
               G_S_MINFO TYPE RSSM_S_MINFO
      CHANGING RESULT TYPE /BI0/OICOPASLQTY
               G_T_ERRORLOG TYPE rssm_t_errorlog_int
               RETURNCODE LIKE SY-SUBRC
               ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel datapackage
    $$ begin of routine - insert your code only below this line        -
    DATA: l_s_errorlog TYPE rssm_s_errorlog_int.
      If TRAN_STRUCTURE-SHKZG = 'S'.
         RESULT = TRAN_STRUCTURE-ZZ_QUAN * -1.
      ELSE.
        RESULT = TRAN_STRUCTURE-ZZ_QUAN.
      ENDIF.
    returncode <> 0 means skip this record
      RETURNCODE = 0.
    abort <> 0 means skip whole data package !!!
      ABORT = 0.
    $$ end of routine - insert your code only before this line         -
    ENDFORM.

Maybe you are looking for