Sample number dynamicall​y change

hello
i have done the signal acquisition. to prevent the data is read before
it was placed in the buffer, is it advisable to change dynamically the
sample number?
i am using digital pulse to trigger the analog voltage acquisition. by
using elapsed time, i try to set the sample number according to the
digital line. the elapse time continue running as long as any of the
digital line is 1. then it will be reset.Elapse time is then multiplied
by 1000 to determine the sample number in analog signal acquisition.
note that the digital line happens before analog signal.
what problem is that the number of sample is seem changing. but the what i can see from the number of sample is not changing.
what really happens?i have manually controled  the number of
sample, the acquisitioin of analog signal can be seem changing. however
using the digital line to trigger the elapse time, the number of sample
is not changing.
how can i solve this problem.
thanks
here attached with the vi
regards
Attachments:
number of sample from loop-1.vi ‏361 KB

It's not clear to me at all what you are attempting to do. The only think that is clear is that the data acquisition cannot begin until the while loop finishes. That is because you have place the daq outside the while loop and you have dataflow between the while loop and the daq.

Similar Messages

  • Samples number is not properly set with VI Express Write To Measurement File

    Hello,
    I have a strange problem with the VI Express Write To Measurement File.
    When I generate the .lvm file the samples number for each channel is equal to 1
    instead of 34 !
    So when I use the VI Express / Input / Generate an arbitrary signal and I want to import
    the generated signal... only one point (the first one) is imported...
    I can manualy fix it by changing samples number in the lvm file using a text editor but that's a (very) dirty hack !
    Here is an example of the generated LVM file
    LabVIEW Measurement   
    Writer_Version    0.92
    Reader_Version    1
    Separator    Tab
    Multi_Headings    No
    X_Columns    One
    Time_Pref    Absolute
    Operator    scls
    Date    2008/04/12
    Time    10:35:58,322057
    ***End_of_Header***   
    Channels    2       
    Samples    1    1   
    Date    2008/04/12    2008/04/12   
    Time    10:35:58,323057    10:35:58,323057   
    X_Dimension    Time    Time   
    X0    0.0000000000000000E+0    0.0000000000000000E+0   
    Delta_X    1.000000    1.000000   
    ***End_of_Header***           
    X_Value    Untitled    Untitled 1    Comment
    0.000000    0.000000    20.000000
    0.082000    10.000000    20.000000
    0.182000    10.000000    25.000000
    0.282000    20.000000    25.000000
    0.382000    20.000000    30.000000
    0.482000    30.000000    30.000000
    0.582000    30.000000    35.000000
    0.682000    40.000000    35.000000
    0.782000    40.000000    40.000000
    0.882000    50.000000    40.000000
    0.982000    50.000000    45.000000
    1.082000    60.000000    45.000000
    1.182000    60.000000    50.000000
    1.282000    70.000000    50.000000
    1.382000    70.000000    55.000000
    1.482000    80.000000    55.000000
    1.582000    80.000000    60.000000
    1.682000    90.000000    60.000000
    1.782000    90.000000    65.000000
    1.882000    100.000000    65.000000
    1.982000    100.000000    70.000000
    2.082000    110.000000    70.000000
    2.182000    110.000000    75.000000
    2.282000    120.000000    75.000000
    2.382000    120.000000    80.000000
    2.482000    130.000000    80.000000
    2.582000    130.000000    85.000000
    2.682000    140.000000    85.000000
    2.782000    140.000000    90.000000
    2.882000    150.000000    90.000000
    2.982000    150.000000    95.000000
    3.082000    160.000000    95.000000
    3.182000    160.000000    100.000000
    3.282000    170.000000    100.000000
    PS : I also post my problem at
    http://forums.lavag.org/Strange-behaviour-of-VI-Express-Write-LVM-t10570.html&gopid=44101#entry44101
    Attachments:
    generate_step_lvm.vi ‏119 KB

    If I use the "one header per segment" option I get the following LVM file (see below)
    But the problem is same !
    I can't import this file in VI Express / Input / Generate Abitrary Signal (I only get one row... the first one)
    I see three solutions :
    - VI Express Write LVM has a bug ?
    - I don't know how to use this VI Express correctly !
    - VI Express / Input / Generate Abitrary Signal has a bug ?
    LabVIEW Measurement    
    Writer_Version    0.92
    Reader_Version    1
    Separator    Tab
    Multi_Headings    Yes
    X_Columns    One
    Time_Pref    Absolute
    Operator    scls
    Date    2008/04/12
    Time    16:38:37,578
    ***End_of_Header***    
    Channels    2        
    Samples    1    1    
    Date    2008/04/12    2008/04/12    
    Time    16:38:37,592999    16:38:37,592999    
    X_Dimension    Time    Time    
    X0    0.0000000000000000E+0    0.0000000000000000E+0    
    Delta_X    1.000000    1.000000    
    ***End_of_Header***            
    X_Value    Untitled    Untitled 1    Comment
    0.000000    0.000000    20.000000
    Channels    2        
    Samples    1    1    
    Date    2008/04/12    2008/04/12    
    Time    16:38:37,717    16:38:37,717    
    X_Dimension    Time    Time    
    X0    1.3899993896484375E-1    1.3899993896484375E-1    
    Delta_X    1.000000    1.000000    
    ***End_of_Header***            
    X_Value    Untitled    Untitled 1    Comment
    0.139000    10.000000    20.000000
    Channels    2        
    Samples    1    1    
    Date    2008/04/12    2008/04/12    
    Time    16:38:37,739999    16:38:37,739999    
    X_Dimension    Time    Time    
    X0    1.6199970245361328E-1    1.6199970245361328E-1    
    Delta_X    1.000000    1.000000    
    ***End_of_Header***            
    X_Value    Untitled    Untitled 1    Comment
    0.162000    10.000000    25.000000
    and so one ...

  • The salesperson for my iphone 4 said on Christmas morning we could go to our online account, select my number, select to change my SIM card, and enter the ICCID number so that I'd be able to use my iphone 4 today. I have not seen any such steps. Help?

    The salesperson for my iphone 4 said on Christmas morning we could go to our online account, select my number, select to change my SIM card, and enter the ICCID number so that I'd be able to use my iphone 4 today instead of my old phone (not an iphone). I have not seen any such steps. Help?

    I suspect the salesperson that told you that meant your online account with your carrier...have you tried logging into your carrier account online? To do this will require the sim number on your sim card, as well as the phone's IMEI number...you get the sim number off the sim card & the IMEI number, for the phone, is printed on the box.

  • Why is there a limit on the number of times a "DVD player region" can be changed, and can it be adjusted for more region changes, or an indefinite number of region changes?

    Why is there a limit on the number of times a "DVD player region" can be changed, and can this numbert be adjusted for more region changes, or an indefinite number of region changes?

    Region encoding is the mechanism that enables motion picture studios to control the worldwide release of their movies. It is required by the DVD Forum (http://www.dvdforum.org/forum.shtml) in all commercial hardware DVD players. Every DVD-Video disc contains one byte of data representing a region code, which limits where the disc can be played.
    http://support.apple.com/kb/HT2397
    Once you have set the region in DVD Player five times it cannot be changed.
    Instead, use VLC to view videos from different regions:
    http://www.videolan.org/vlc/download-macosx.html

  • Max number of pin changes

    I m new at bb playbook . Whenever I try to download any app, it gives msg that's have reached maximum number of pin changes for this account '.  Now how to resolve this problem,  kindly help immediately 

    This is all there is regarding that message:
    http://www.blackberry.com/btsc/KB25553
    How many times have you changed devices? Are you using the same BBID on another Playbook or multiple Playbooks?
    1. Please thank those who help you by clicking the "Like" button at the bottom of the post that helped you.
    2. If your issue has been solved, please resolve it by marking the post "Solution?" which solved it for you!

  • You have reached the maximum number of PIN changes for this account"

    today i change my device to z10,when run BBW,it shows this message :
    You have reached the maximum number of PIN changes for this account.  Please visit http://www.blackberry.com/appworld/support for more information.
    how can I solve this problem?
    many thanks!

    BBID: **Removed**
    device:z10 stl-2
    pin:**Removed**
    thanks : )
    Edit: PIN, Email ID removed. At no time should you provide any personal information to any other community member. Please review the Community Guidelines and Terms and Conditions of Use. for further information

  • After I downloaded my iOS7 on my iPhone and iPad my iMessage phone number has been changed

    After I downloaded the new 7 operating system my iMessage no longer uses my phone number, it's changes my number!?

    Same issue here.  My iphone has the correct number.  But on my Ipad, it shows my email address and the phone number of my iPhone and NOT my iPad.  Very frustrating.

  • I wanna change the Questions, but the support will call me in a wrong number and it won't let me change the number unless i change the country, and i can't change the country because i have a money in my account.. what should i do??

    I wanna change the Questions, but the support will call me in a wrong number and it won't let me change the number unless i change the country, and i can't change the country because i have a money in my account.. what should i do??

    You will need to call tech support or have them call you at http://expresslane.apple.com
    Diana

  • How to generate the request number for the changed  script

    Hi guys
        I am having a reqirement, to modify the script which was already transported to production server. I changed the script, but while saving it is not asking any request number.
        On which request number it is getting saved?
        Or is there any methods to generate the <b>request number for the changed script</b>
         Kindly suggest me the procedure with step by step operation.

    Goto Se03 Transaction : 
    select change object directy entries ->execute->select one empty check box ->FORM-> your form name -Execute->

  • Exporting to CSV, a number field is changing format

    Post Author: MELANIE ELIASON
    CA Forum: Exporting
    Exporting to CSV, a number field is changing formats.  I have it excluding the decimals places and commas.
    Can anyone help?  I am using version 10.
    Mel

    Post Author: V361
    CA Forum: Exporting
    If you are exporting to Excel, it may be Excel that is changing the number format.
    you could totext , but then Excel will treat it as text and not as a number.
    May not be what you want.

  • Dynamicall​y Changing Number of Channels in Chart

    Hi,
    I have a simple question about a labview programming issue. I am
    trying to modify an NI Example program for demonstrational purposes.
    I am using the Multi-plot real-time chart example program (link below)
    from the NI website. I have changed your example for the chart to
    display the data in the stacked plot mode. How could I modify it to
    vary the number of traces dynamically. Is this possible? My goal
    would be to use a series or radio buttons to control viewing 4, 8 or
    16 channels, in real time. All of the code and programs I have seen
    have channel display statically in the begining setup. Is there a
    property node of the chart that controls this?
    Thanks
    John
    http://zone.ni.com/devzone/explprog.nsf/6c163
    603265406328625682a006ed37d/5ac3fd88cb3815f0862566​57007542ee?OpenDocument

    Mark,
    I would appreciate if i could see some code. Would you please email
    it to my hotmail address.
    Thanks
    John
    On Mon, 4 Feb 2002 07:40:27 -0800 (PST), markwysong
    wrote:
    >There's not really a property node. I've done this before, but it's
    >not exactly straight forward. If you stretch the window that shows
    >the trace names and colors, you can show more trace names and colors.
    >Make sure that this is big enough to handle the max number of traces
    >that you'll need.
    >
    >Next, in your code, make a property node for the chart. You'll need
    >to set all the trace colors to transparent to begin with, then change
    >them to a predefined color depending on how many traces you have. You
    >do this by using the property node, setting the active plot, then
    >
    changing the color (and name, too). Then you just wire the plots to
    >the chart, and it should display it. I can show you some of my code
    >that performs these functions if need be.
    >
    >Mark

  • Dynamicall​y changing the sample rate

    hello!
           usually we can't dynamically change the sample clock when the program is running.So I want to ask how to dynamically changethe sample rate when program is running,Can  you give me a example?
         Thank you!

    I think there is no such example.
    But i think you could add a while loop structure outside your main program. In the front panel, add a button named change sampling rate, when you press the button, the program stops the present acquisition and into a new acquisition configuration and start acquisition.

  • Select number of rows changed within an hour

    Hi all, i below are samples of my data
    name: age : changed_date_time
    peter: 13: 2/10/06 13:45:30
    james: 14: 2/10/06 13:30:45
    justin:17: 2/10/06 14:05:00
    john:20: 4/10/06 05:10:31
    my desired result is
    changed_date_time : number of records
    2/10 13hrs : 2
    2/10 14hrs : 1
    4/10 05hrs : 1
    what i wrote wasselect to_char ( changed_date_time , 'dd/mm hh24'),count (*)
    from table1
    group by changed_date_timeI tried to include a sum function within my query, i was not able to achieve my desired results. Can someone advise?

    Change your group by clause
    with t as
    select 'peter' name,13 age, to_date('2/10/06 13:45:30','dd/mm/yy hh24:MI:SS') changed_date_time from dual
    union all
    select 'james',14,to_date('2/10/06 13:30:45','dd/mm/yy hh24:MI:SS') from dual
    union all
    select 'justin',17, to_date('2/10/06 14:05:00','dd/mm/yy hh24:MI:SS') from dual
    union all
    select 'john',20,to_date('4/10/06 05:10:31','dd/mm/yy hh24:MI:SS') from dual
    select to_char(changed_date_time,'DD/MM hh24')||'hrs' ||' : '||count(1) from t
    group by to_char(changed_date_time,'DD/MM hh24')

  • Can you change your phone number back to a phone number that you changed it from if its still not being used?

    i recently changed my number and didnt kno if its possible to change it back

        @haroldgene1,
    Look no further help is here!
    Usually once the number is changed we are unable to get it back. When was the number changed?
    JohnB_VZW
    Follow us on Twitter @VZWSupport

  • Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values

    Dear Friends,
    I am new to the Badi technology. We would like to populate/change the standard field values, (Purchasing group) during Purchase Requisition creation/change.
    Method --> PROCESS_ITEM.
    I tried the following code, but system blnaks out all the field values entered during PR creation.
    Appreciate, if you could provide me some sample code which can be of help.
    Reg
    Kumar
    Sample code----
    METHOD if_ex_me_process_req_cust~process_item .
    DATA: k_mereqitem          TYPE mereq_item,
            om_data              type mereq_item,
            om_datax             type mereq_itemx,
        k_mereqitem = im_item->get_data( ).
        check im_count = 1.
        if k_mereqitem-bsart = 'ST' and
           k_mereqitem-loekz = ' '.
        om_data-pstyp = '5'. " assign default item category code
        om_data-bnfpo = k_mereqitem-bnfpo.
        om_data-WERKS = k_mereqitem-WERKS.
        om_datax-pstyp = 'X'.
        call method im_item->set_datax
             exporting im_datax = om_datax.
        call method im_item->set_data
             exporting im_data =  om_data.
        endif.
    ENDMETHOD.

    Hi Kumar,
    i have not a special solution for your case, but i use this BADI with great effort
    As my comments in example are in german lg. i explain in short words what i do:
    X) define data
    1) select data from base item
    1a) header-data
    1b) item data (easy)
    1c) accounting data
    2+3) check field values, post warning message + mostly change values + sometimes set cursor focus on field
    Have a look and give me some points if my example increased your BADI knowledge
    regards
    Jörg
    METHOD if_ex_me_process_po_cust~process_item .
    * Business-Add-Inn ME_PROCESS_PO_CUST
    * Jörg Sauterleute - 23.12.2005
    * Ablauf:
    * 1. Datenbschaffung
    * 2. Feldänderungen prüfen + Warnung ausgeben
    * 3. Feldinhalte prüfen + evtl. ändern u. Hinweis ausgeben
      DATA: ls_mepoitem TYPE mepoitem,
            ls_mepoheader TYPE mepoheader,
            ls_mepoaccounting TYPE mepoaccounting.
    * Interfacereferenz auf <if_purchase_order_mm>
      DATA: header_obj TYPE REF TO if_purchase_order_mm.
    * Interfacereferenz auf <if_purchase_order_account_mm> über Tabelle
      DATA: it_accountings TYPE purchase_order_accountings, "Tabelle
            accounting_obj TYPE purchase_order_accounting.
    * Include für Ausgabe von Meldungen
    * im BAdI ME_PROCESS_PO_CUST niemals ABAP-Statement MESSAGE verwenden!
      INCLUDE mm_messages_mac.
    * Hilfsvariablen
      DATA: h_change_mepoitem TYPE c,
            h_text TYPE string.
      IF sy-sysid = 'HLT'. break sau. ENDIF.
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    * 1. Datenbeschaffung
    * Kopfdaten
      header_obj = im_item->get_header( ).
      ls_mepoheader = header_obj->get_data( ).
    * Positionsdaten
      ls_mepoitem = im_item->get_data( ).
    * Kontierungsdaten (Accounting) über Tabelle it_accountings
      it_accountings = im_item->get_accountings( ).
    * ...IF eingebaut, weil sonst später Abbruch, wenn sy-subrc <> 0
      IF NOT ls_mepoitem-knttp IS INITIAL.
        LOOP AT it_accountings INTO accounting_obj.
          ls_mepoaccounting = accounting_obj-accounting->get_data( ).
        ENDLOOP.
      ENDIF.
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    * 2. Daten prüfen -> Warnmeldung
    * Feld Empfänger (Kontierung) prüfen -> Warnmeldung
      IF ls_mepoheader-ekorg = '1000' AND
         ls_mepoheader-bsart = 'IB'.
        IF NOT ls_mepoitem-knttp IS INITIAL.
          CASE ls_mepoheader-ekgrp.
            WHEN '500' OR '501'.
              IF NOT ls_mepoaccounting-wempf IS INITIAL.
                mmpur_metafield mmmfd_recipient.       "Warenempfänger - Cursor setzen
                mmpur_message_forced 'I' 'ME' '303' text-011 '' '' ''.
    * Warnmeldung wieder aus Protokoll entfernen.
                IF ls_mepoaccounting-wempf IS INITIAL.
                  mmpur_remove_messages_by_id ls_mepoaccounting-id.
                  mmpur_business_obj_id ls_mepoaccounting-id.
                ENDIF.
              ENDIF.
            WHEN OTHERS.
              IF ls_mepoaccounting-wempf IS INITIAL.
                mmpur_metafield mmmfd_recipient.       "Warenempfänger - Cursor setzen
                mmpur_message_forced 'W' 'ME' '303' text-010 '' '' ''.
              ENDIF.
    * Warnmeldung wieder aus Protokoll entfernen.
              IF NOT ls_mepoaccounting-wempf IS INITIAL.
                mmpur_remove_messages_by_id ls_mepoaccounting-id.
                mmpur_business_obj_id ls_mepoaccounting-id.
              ENDIF.
          ENDCASE.
        ENDIF.
      ENDIF.
    * Ende Feld Empfänger (Kontierung) prüfen -> Warnmeldung
    * Ende test
    * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    * 3. Positionsdaten prüfen/ändern -> setzen
      CLEAR: h_change_mepoitem,
             h_text.
    * Kennzeichen Wareneingang prüfen/ändern
    * Belegart 'NB' immer mit "Wareneingang" wegen Log. Rechnungsprüfung
    * Belegart 'IB' immer ohne "Wareneingang" weil Einsatz Workflow
    * (Kennzeichen 'WEPOS' setzen/nicht setzen)
      IF NOT ls_mepoitem-knttp IS INITIAL.
        CASE ls_mepoheader-bsart.
          WHEN 'NB'.
    * Prüfung ob gesetzt
    * Wenn nicht, dann setzen und Daten übergeben
    * Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
            IF ls_mepoitem-wepos IS INITIAL.
              ls_mepoitem-wepos = 'X'.
              h_change_mepoitem = 'X'.
    *           im_item->set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-001.
              mmpur_metafield mmmfd_gr_ind .       "WE-Kennzeichen - Cursor setzen
    *           message erst später ausführen!
    *           mmpur_message_forced 'I' 'ME' '303' text-001 '' '' ''.
            ENDIF.
          WHEN 'IB'.
    * Prüfung ob nicht gesetzt
    * Wenn doch, dann entfernen und Daten übergeben
    * Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
            IF NOT ls_mepoitem-wepos IS INITIAL.
              ls_mepoitem-wepos = ' '.
              h_change_mepoitem = 'X'.
    *            im_item->set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-002.
              mmpur_metafield mmmfd_gr_ind .       "WE-Kennzeichen - Cursor setzen
    *           message erst später ausführen!
    *           mmpur_message_forced 'I' 'ME' '303' text-002 '' '' ''.
            ENDIF.
        ENDCASE.
      ENDIF.
    * Ende Kennzeichen Wareneingang prüfen/ändern
    * Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
    * (für autom. Gutschriftsverfahren Verpackungseinkauf)
    * Kreditordaten
      DATA: it_lfm1 TYPE TABLE OF lfm1,
            wa_lfm1 TYPE lfm1.
      IF ls_mepoheader-ekorg = '1000' AND
         ls_mepoheader-bsart = 'NB'   OR
         ls_mepoheader-bsart = 'KA'.
        IF ls_mepoitem-xersy IS INITIAL AND
           ls_mepoitem-umson IS INITIAL.                    "kostenlose Lieferung
          SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
                   WHERE lifnr = ls_mepoheader-lifnr AND
                         ekorg = ls_mepoheader-ekorg.
          IF sy-subrc = 0.
            READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.
            IF wa_lfm1-xersy = 'X'.
              ls_mepoitem-xersy = 'X'.
              h_change_mepoitem = 'X'.
    *          im_item->set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-005.
              mmpur_metafield mmmfd_ers.       " Kennz. aut.WE-Abrechnung - Cursor setzen
    *            message erst später ausführen!
    *            mmpur_message_forced 'I' 'ME' '303' text-005 '' '' ''.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    * Ende Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
    * Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
    * (für autom. Gutschriftsverfahren Verpackungseinkauf)
    * Kreditordaten bereits deklariert
    *  DATA: it_lfm1 TYPE TABLE OF lfm1,
    *        wa_lfm1 TYPE lfm1.
      IF ls_mepoitem-knttp IS INITIAL.
    * nicht anwenden bei kontierten Bestellungen
        IF ls_mepoitem-pstyp = 0.
    * nicht anwenden bei gefülltem Positionstyp (z.B. 'L' = Lohnbearbeitung, Preis 0,00 EUR)
          IF ls_mepoheader-ekorg = '1000' AND
             ls_mepoheader-bsart = 'NB'   OR
             ls_mepoheader-bsart = 'KA'.
            IF ls_mepoitem-webre IS INITIAL AND
               ls_mepoitem-umson IS INITIAL.                    "kostenlose Lieferung
              SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
                       WHERE lifnr = ls_mepoheader-lifnr AND
                             ekorg = ls_mepoheader-ekorg.
              IF sy-subrc = 0.
                READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.
                IF wa_lfm1-webre = 'X'.
                  ls_mepoitem-webre = 'X'.
                  h_change_mepoitem = 'X'.
    *          im_item->set_data( EXPORTING im_data = ls_mepoitem ).
                  h_text = text-006.
                  mmpur_metafield mmmfd_gr_based_iv.   "WE-bezogene RP - Cursor setzen
    *            message erst später ausführen!
    *            mmpur_message_forced 'I' 'ME' '303' text-006 '' '' ''.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    * Ende Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
    ** Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
    ** (bisher nur Natec)
    ** Infosatzdaten (Konditionen) deklarieren
    ** Verweis of Tabelle mit Kopfzeilen immer mit TYPE TABLE OF
    *  DATA: it_ekomd TYPE TABLE OF ekomd,
    *        wa_ekomd TYPE ekomd.
    *  IF ls_mepoheader-ekorg = '1300' AND
    *     ls_mepoheader-bsart = 'NB'   .
    *    CALL FUNCTION 'ME_GET_INFORECORD_CONDITIONS'
    *      EXPORTING
    *        i_ekorg = ls_mepoheader-ekorg
    *        i_esokz = '0'                                       " '0' = NB
    *        i_infnr = ls_mepoitem-infnr
    *        i_lifnr = ls_mepoheader-lifnr
    *        i_matkl = ls_mepoitem-matkl
    *        i_matnr = ls_mepoitem-matnr
    *        i_werks = ls_mepoitem-werks
    *      TABLES
    *        tekomd  = it_ekomd.
    *    SORT it_ekomd BY datbi DESCENDING.
    *    READ TABLE it_ekomd INTO wa_ekomd INDEX 1.
    *    CASE ls_mepoheader-ekorg.
    *      WHEN '1300'.
    **     Anforderung Natec: wenn Infosatz-Kondition
    **       a)  leer o. nicht gültig  => AB setzen, wenn fehlt
    **       b)  älter       2 Monate  => AB setzen, wenn fehlt
    **       c)  nicht älter 2 Monate  => AB entfernen, wenn gesetzt
    **     Hilfsvariablen
    *        DATA: h_vgldat   TYPE sy-datum.   " Vergleichsdatum
    *        DATA: h_ergebnis TYPE c.
    **     Alter der Infosatzkondition ermitteln.
    *        CALL FUNCTION 'CCM_GO_BACK_MONTHS'
    *          EXPORTING
    *            currdate   = sy-datum
    *            backmonths = '002'
    *          IMPORTING
    *            newdate    = h_vgldat.
    *        IF wa_ekomd-datbi < sy-datum OR    " gefunden Kondition nicht gültig oder
    *           wa_ekomd-datbi IS INITIAL.      " keine Kondition gefunden
    *          h_ergebnis = 'a'.
    *        ENDIF.
    *        IF wa_ekomd-datab < h_vgldat.
    *          h_ergebnis = 'b'.
    *        ENDIF.
    *        IF wa_ekomd-datab > h_vgldat.
    *          h_ergebnis = 'c'.
    *        ENDIF.
    **       Prüfung ob nicht gesetzt
    *        IF ls_mepoitem-kzabs = ' ' AND
    *                  h_ergebnis = 'a' OR
    *                  h_ergebnis = 'b' .
    *          ls_mepoitem-kzabs = 'X'.
    *          h_change_mepoitem = 'X'.       "Merker setzen, geändert wird am Schluss
    **               im_item->set_data( EXPORTING im_data = ls_mepoitem ).
    *          h_text = text-003.
    **               message erst später ausführen!
    **               mmpur_message_forced 'I' 'ME' '303' text-004 '' '' ''.
    *        ENDIF.
    **       Prüfung ob gesetzt
    *        IF ls_mepoitem-kzabs = 'X' AND
    *           h_ergebnis        = 'c' .
    *          ls_mepoitem-kzabs = ' '.
    *          h_change_mepoitem = 'X'.       "Merker setzen, geändert wird am Schluss
    **               im_item->set_data( EXPORTING im_data = ls_mepoitem ).
    *          h_text = text-004.
    **               message erst später ausführen!
    **               mmpur_message_forced 'I' 'ME' '303' text-003 '' '' ''.
    *        ENDIF.
    *    ENDCASE.
    *  ENDIF.
    ** Ende Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
    * Bestell-/Bestellpreis-Mengeneinheit prüfen/setzen
      DATA: h_txz01 TYPE mepoitem-txz01.   " Materialkurztext
      IF   ( ls_mepoheader-ekorg = '1000' OR
             ls_mepoheader-ekorg = '1500' ) AND
             ls_mepoheader-bsart = 'IB' AND
         NOT ls_mepoitem-knttp IS INITIAL.
    * Vergleichen ob eingegebene Mengeneinheit in Kurztext "avisiert"
        CONCATENATE '(' ls_mepoitem-meins ')' INTO h_txz01.
        IF ls_mepoitem-txz01 CS h_txz01.
          IF NOT ls_mepoitem-meins IS INITIAL.
            mmpur_metafield mmmfd_unit .       "Steuer-Kennz. - Cursor setzen
            mmpur_message_forced 'W' 'ME' '303' 'ME' ls_mepoitem-meins
                                                     text-031 ''.
          ENDIF.
    * sonst standarmäßig 'LE' setzen wegen Problemen bei Obligo
        ELSE.
          IF NOT ls_mepoitem-meins = 'LE'.
            ls_mepoitem-meins = 'LE'.
            ls_mepoitem-bprme = 'LE'.
            h_change_mepoitem = 'X'.
    *      im_item->set_data( EXPORTING im_data = ls_mepoitem ).
            h_text = text-030.
            mmpur_metafield mmmfd_unit .             "Steuer-Kennz. - Cursor setzen
    *      message erst später ausführen!
    *      mmpur_message_forced 'I' 'ME' '303' text-030 '' '' ''.
          ENDIF.
        ENDIF.
      ENDIF.
    * Ende Bestell-Mengeneinheit prüfen/ändern
    * Steuerkennzeichen prüfen/setzen (für EK-Gruppe 500,501)
      IF ls_mepoheader-ekorg = '5000' AND
         ls_mepoitem-matnr IS INITIAL.
        CASE ls_mepoheader-ekgrp.
          WHEN '500' OR '501'.
            IF ls_mepoitem-mwskz IS INITIAL.
              ls_mepoitem-mwskz = 'V4'.
              h_change_mepoitem = 'X'.
    *    "      im_item->set_data( EXPORTING im_data = ls_mepoitem ).
    *          h_text = text-020.
    *          mmpur_metafield mmmfd_tax_code .       "Cursor Steuer-Kennz.
    *    "      message erst später ausführen!
    *    "      mmpur_message_forced 'I' 'ME' '303' text-020 '' '' ''.
            ENDIF.
        ENDCASE.
      ENDIF.
    * Ende Steuerkennzeichen prüfen/ändern
    * zu 3.
    * zum Schluss noch die geänderten mepoitem-xxxx setzen
    * + gleiche Meldungen (I ME 303) ausgeben
      IF h_change_mepoitem = 'X'.
        im_item->set_data( EXPORTING im_data = ls_mepoitem ).
      ENDIF.
      IF NOT h_text IS INITIAL.
        mmpur_message_forced 'I' 'ME' '303' h_text '' '' ''.
      ENDIF.
    * Ende Daten prüfen/ändern -> setzen
    ENDMETHOD.                    "IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM

Maybe you are looking for