How to write a DMX Lighting control in Logic 9
Hi,
I'm extremely new to Logic, as in I just bought it a day ago, and the only reason I got was so that I can run both my backing/ click track AND my lighting rig, which has multiple pieces, that trigger independently. Is there anyone that can tell me, preferably step by step, hoow I could accomplish this, or at least get started with it. I just don't really know where to begin to start looking, or trying to put stuff together, as i said, I'm extremely new to the DAW.
Email if it is easier...
[email protected]
can u pls provide the information how did u get it working with the http// stuff. are u using the camera's ip address there? can ya provide some egs. too pls
Similar Messages
-
Would like to know how to write a Proportional Integral control VI
Please would some one show me how to write a Proportional Control Vi
Check out this:
http://forums.ni.com/t5/LabVIEW/How-to-build-a-PID-controller/td-p/608537
http://zone.ni.com/devzone/cda/epd/p/id/2382
Br,
/Roger -
How to write queries more efficiently? Please Help a sinking guy
Hello Query Guru's,
I am having issue writing the SQL statements efficiently, please help/guide me to learn how to write SQL’s more efficiently and logically. At my work I am being a fun every day by my team when comes the coding please guide me to become an efficient query writer. I am starving and ready to do hard work but need to know the correct path.
Thanks in Advance.You could pick up examples from introductory books on Oracle.
For example the Certification Guides for the Oracle SQL Fundamentals Guide (1Z0-051 http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-051&p_org_id=&lang= ) . Search bookstores / amazon.com for books for 1Z0-051
You could also look at Jason Price's book Oracle Database 11g SQL : http://www.amazon.com/Oracle-Database-11g-SQL-Press/dp/0071498508/ref=sr_1_1?ie=UTF8&qid=1372742972&sr=8-1&keywords=Jason+Price
Hemant K Chitale -
Controlling 2 different iPad apps (digital mixer and DMX lights) using one airport express
Hi,
I'm using an AIRPort Express 802.11n for my digital mixer MACKIE DL1608 which is controlled by my iPad ie. iPad (app is Masterfader) talks to airport express, from LAN out to ethernet to mixer. My question is: can i use the one airport express to also run another device by using some kind of double LAN out adapter? I also want the same iPad to controll my DMX lights ie. iPad (app is Luminair) talks to airport express that connects from LAN out to ethernet to lights controller.
Otherwise if I need to get two seperate airport expresses, are there any complications with having them sitting close to one another (as I will operate them from the same carry case)?
Thanks in anticipationA small ethernet hub or switch should be able to handle that.
-
How to populate data in table control .
hi all,
i put matnr no. in screen no. 103
validation is done at that screen only.
now when i want to modify dat record
when i put matnr no. at screen 103
so how i will get all data of dat number to table control screen.Hi Darshan,
Here is a detailed description of how to update data in table controll.
Updating data in table control
The ABAP language provides two mechanisms for loading the table control with data from the internal table and then storing the altered rows of the table control back to the internal table.
Method 1: Read the internal table into the Table Control in the screenu2019s flow logic. Used when the names of the Table Control fields are based on fields of the internal table.
Method 2: Read the internal table into the Table Control in the module pool code. Used when the names of the Table Control fields are based on fields of the database table.
Method 1 (table control fields = itab fields)
In the flow logic we can read an internal table using the LOOP statement. Define the reference to the relevant able control by specifying WITH CONTROL <ctrl>
Determine which table entry is to be read by specifying CURSOR <ctrl>-CURRENT_LINE.
After the read operation the field contents are placed in the header line of the internal table. If the fields in the table control have the same name as the internal they will be filled automatically. Otherwise we need to write a module to transfer the internal table fields to the screen fields.
We must reflect any changes the user makes to the fields of the table control in the internal table otherwise they will not appear when the screen is redisplayed after PBO processing, (eg, after the user presses Enter or scrolls) However, this processing should be performed only if changes have actually been made to the screen fields of the table control (hence the use of the ON REQUEST)
PROCESS BEFORE OUTPUT.
LOOP AT ITAB_REG WITH CONTROL TCREG
CURSOR TCREG-CURRENT_LINE.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT ITAB_REG.
MODULE MODIFY_ITAB_REG.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Method 2 (table control fields = dict. fields)
If using a LOOP statement without an internal table in the flow logic, we must read the data in a PBO module which is called each time the loop is processed.
Since, in this case, the system cannot determine the number of internal table entries itself, we must use the EXIT FROM STEP-LOOP statement to ensure that no blank lines are displayed in the table control if there are no more corresponding entries in the internal table.
PROCESS BEFORE OUTPUT.
LOOP WITH CONTROL TCREG.
MODULE READ_ITAB_REG.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP WITH CONTROL TCREG.
CHAIN.
FIELD: ITAB_REG-REG,
ITAB_REG-DESC.
MODULE MODIFY_ITAB_REG
ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE READ_ITAB_REG OUTPUT.
READ TABLE ITAB_REG INDEX TCREG-CURRENT_LINE.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING ITAB_REREG TO TCREG.
ELSE.
EXIT FROM STEP-LOOP.
ENDIF.
ENDMODULE.
MODULE MODIFY_ITAB_REG INPUT.
MOVE-CORRESPONDING TCREG TO ITAB_REG.
MODIFY ITAB_REG INDEX
TCREG-CURRENT_LINE.
ENDMODULE.
Updating the internal table
Method 1
PROCESS AFTER INPUT.
LOOP AT ITAB_REG.
CHAIN.
FIELD: ITAB_REG-REG,
ITAB_REG-DESC.
MODULE MODIFY_ITAB_REG ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
ITAB_REG-MARK = u2018Xu2019.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Method 2
PROCESS AFTER INPUT.
LOOP WITH CONTROL TCREG.
CHAIN.
FIELD: TCREG-REG,
TCREG-DESC.
MODULE MODIFY_ITAB_REG ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
MOVE-CORRESPONDING TCREG TO ITAB_REG.
ITAB_REG-MARK = u2018Xu2019.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Updating the database
MODULE USER_COMMAND_100.
CASE OK_CODE.
WHEN u2018SAVEu2019.
LOOP AT ITAB-REG.
CHECK ITAB_REG-MARK = u2018Xu2019.
MOVE-CORRESPONDING ITAB_REG TO TCREG.
UPDATE TCREG.
ENDLOOP.
WHEN u2026
u2026
ENDCASE.
ENDMODULE.
Hope this will solve your problem.
Regards,
Pavan.
Edited by: PAVAN CHANDRASEKHAR GANTI on Aug 3, 2009 12:48 PM -
I'm after some advice, I'm planning a keynote presentation and will be using some portable DMX lights in the venue, what I had in mind is when it gets to a particular slide, the colours of the lights change as well. Is this realistically possible or too complicated? What's involved exactly? One idea I had is to get Keynote to trigger off an Apple Script to the application which controls the lights by a Usb adapter. Perhaps there's much more to it than this, but I'd appreciate any input
Keynotes ability to interact with the outside world is nil.
It is restricted to the user manually clicking a hyperlink that will open a webpage or second Keynote file. -
How to write the exceptions in function module
dear all,
how to write the exceptions in function modules with example.
thanq
jyothiHi,
Raising Exceptions
There are two ABAP statements for raising exceptions. They can only be used in function modules:
RAISE except.
und
MESSAGE.....RAISING except.
The effect of these statements depends on whether the calling program handles the exception or not. The calling program handles an exception If the name of the except exception or OTHERS is specified after the EXCEPTION option of the CALL FUNCTION statement.
If the calling program does not handle the exception
· The RAISEstatement terminates the program and switches to debugging mode.
· The MESSAGE..... RAISING statement displays the specified message. Processing is continued in relation to the message type.
If the calling program handles the exception, both statements return control to the program. No values are transferred. The MESSAGE..... RAISING statement does not display a message. Instead, it fills the system fields sy-msgid, sy-msgty, sy-msgno , and SY-MSGV1 to SY-MSGV4.
Source Code of READ_SPFLI_INTO_TABLE
The entire source code of READ_SPFLI_INTO_TABLE looks like this:
FUNCTION read_spfli_into_table.
""Local Interface:
*" IMPORTING
*" VALUE(ID) LIKE SPFLI-CARRID DEFAULT 'LH '
*" EXPORTING
*" VALUE(ITAB) TYPE SPFLI_TAB
*" EXCEPTIONS
*" NOT_FOUND
SELECT * FROM spfli INTO TABLE itab WHERE carrid = id.
IF sy-subrc NE 0.
MESSAGE e007(at) RAISING not_found.
ENDIF.
ENDFUNCTION.
The function module reads all of the data from the database table SPFLI where the key field CARRID is equal to the import parameter ID and places the entries that it finds into the internal table spfli_tab. If it cannot find any entries, the exception NOT_FOUND is triggered with MESSAGE ... RAISING. Otherwise, the table is passed to the caller as an exporting parameter.
Calling READ_SPFLI_INTO_TABLE
The following program calls the function module READ_SPFLI_INTO_TABLE:
REPORT demo_mod_tech_fb_read_spfli.
PARAMETERS carrier TYPE s_carr_id.
DATA: jtab TYPE spfli_tab,
wa LIKE LINE OF jtab.
CALL FUNCTION 'READ_SPFLI_INTO_TABLE'
EXPORTING
id = carrier
IMPORTING
itab = jtab
EXCEPTIONS
not_found = 1
OTHERS = 2.
CASE sy-subrc.
WHEN 1.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno.
WHEN 2.
MESSAGE e702(at).
ENDCASE.
LOOP AT jtab INTO wa.
WRITE: / wa-carrid, wa-connid, wa-cityfrom, wa-cityto.
ENDLOOP.
The actual parameters carrier and jtab have the same data types as their corresponding interface parameters in the function module. The exception NOT_FOUND is handled in the program. It displays the same message that the function module would have displayed had it handled the error.
Or
just have to decide what exceptions u want and under what conditions.
then declarethese exeptions under the exceptions tab.
in the source code of ur function module.
if
like this u can code .
now when u call the function module in tme mainprogram.
if some error occurs and u have declared a exception for this then it will set sy-subrc = value u give inthe call of this fm.
in the fm u can program these sy-subrc values and trigger the code for ur exception.
Please reward if useful
Regards,
Ravi
Edited by: Ravikanth Alapati on Mar 27, 2008 9:36 AM -
HR ABAP How to Write BDC For Infotype 0586
Hi Experts
Can Any One tell me how to write BDC for Infotype 0586 and also 585.
If we enter into the maintaining Screen, the lines in the Screen will dynamically changing depending on the values.
When I am doing recording , If I press page down after entering values in top lines, the lines are changing and the records are not updating Correctly.
I need to write BDC to Create Change.
Can any one please help me in this regard?
Thanks in Advance.
Regards
Avinash.http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
http://www.google.co.in/search?hl=en&q=SAPBDCtable+control&meta=
http://www.sap-basis-abap.com/abap/handling-table-control-in-bdc.htm
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
http://www.sap-img.com/abap/question-about-bdc-program.htm -
How can I get the light for the power button to go back on?
I would like to get the power button light to work properly again. I have a p6813W desktop running Windows 7, 64 bit OS.
The first time the machine went into sleep mode and was awoken the power button light went out and has not yet to come back on even after many shutdowns and restarts. I can't easity tell if my computer is on or off. How can I get the light to work properly again?
Thanks.Mac's don't have UI scale options like Windows has.
Either you can drop the screen resolution in Displays a wee bit and make things appear distorted, or do what I do and use the Universal Access and set a control key, then use a mouse wheel/scroll to zoom in and out where the mouse is pointed.
For easier web surfing I've got a good solution here
Better surfing options for hard of seeing users -
Hi All, How we can handle a table control in bdc - in detail its urgent pls
Hi All, How we can handle a table control in bdc - in detail its urgent. Please send me the explanation in detail.
Thanks®ards.
Bharathi,
Create Table Control
Step 1 (Create new structure for table control)
Type is name of structure (ZTC_EKKO) and press create
Step 2 (Create Program)
Goto transaction SE80(Object Navigator) -> Repository Browser -> Program.
Enter your program name, please ensure that is begins with SAPMZ as this is a module pool (dialog program).
Press enter to create, and press yes!
Ensure that you create a top include, and press Enter.
Accept the name created for the top include.
Press Enter.
Press Save
Step 3 (Create TOP include)
Double click on the top include and enter following ABAP code:
Tables: ZTC_EKKO.
controls: tc100 type tableview using screen 100.
data: ok_code type sy-ucomm.
data: it_ekko type standard
table of ZTC_EKKO initial size 0,
wa_ekko type ZTC_EKKO.
data: ok_code type sy-ucomm.
Press Save and Activate
Step 4 (Create screen)
Right click the program to create a screen 100 for the dialog. Enter Short description, set screen type to Normal and enter 0 or blank into Next screen. Then move to Element List tab and enter the OK code as OK_CODE (i.e. the same as what you declared in the top include with data: ok_code type sy-ucomm).
Step 5 (Create table control)
Press the Layout button to bring up the screen painter editor.
Press table control button and drag it on to the screen, enter the name of table control created in TOP include (TC100). Now press the yellow button for attributes and set the table control as below options
Step 6 (Populate table control )
Press the orange button (Fields). On the next screen enter ZTC_EKKO and press the Get from Dict button. Select the fields you want (all) and press enter. Now drag them onto your Table Control.
Below is the result, there will been syntax errors if we check now! So Save and go back into the flow logic tab.
Step 7 (Create flow control )
Within the flow logic of screen 100 and create two modules, one to select the data from the database and the other to move the selected fields into the table control. Also insert the two loop statements to populate and retrieve the lines of the table control.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
module data_retrieval.
loop at it_ekko into wa_ekko with control TC100.
module populate_screen.
endloop.
PROCESS AFTER INPUT.
loop at it_ekko.
endloop.
MODULE USER_COMMAND_0100.
Double click the module data_retrieval to create and click yes to get past the popup. Ensure that a new include is created to hold all the PBO modules (default). Press enter.
Select 10 rows of data from the EKKO table and load into the internal table it_ekko. Go back to the flow logic to load this data into the Table Control.
check this one
REPORT ZCALL_TRANS_TAB1 .
TABLES: LFA1,LFBK,lfb1.
data: BEGIN OF it_vendor occurs 0,
LIFNR LIKE LFA1-LIFNR,
bukrs like lfb1-bukrs,
END OF it_vendor.
DATA: BEGIN OF IT_BANK occurs 0,
LIFNR LIKE LFA1-LIFNR,
BANKS LIKE LFBK-BANKS,
BANKL LIKE LFBK-BANKL,
BANKN LIKE LFBK-BANKN,
koinh like lfbk-koinh,
END OF IT_BANK.
data: it_bdcdata like bdcdata occurs 0 with header line.
data: it_messages like bdcmsgcoll occurs 0 with header line.
*selection screen.
selection-screen: begin of block b1 with frame.
parameters: p_file like rlgrap-filename default 'c:/vendor.txt'
obligatory.
parameters: p_file1 like rlgrap-filename default 'c:/xyz.txt'
obligatory.
selection-screen: end of block b1.
*at selection screen.
at selection-screen on value-request for p_file.
perform f4_help using p_file.
at selection-screen on value-request for p_file1.
perform f4_help1 using p_file1.
*start of selection
start-of-selection.
*******uploading file
perform upload_file using p_file P_FILE1.
******open session.
perform populate_data.
*& Form f4_help
form f4_help using p_p_file.
data: l_file type ibipparms-path.
call function 'F4_FILENAME'
importing
file_name = l_file.
p_file = l_file.
endform. " f4_help
*& Form POPULATE_DATA
form populate_data .
DATA: L_STRING TYPE STRing.
DATA: L_COUNTER(2) TYPE n.
loop at it_vendor.
perform bdc_dynpro using 'SAPMF02K' '0106'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-D0130'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
it_vendor-lifnr.
perform bdc_field using 'RF02K-BUKRS'
it_vendor-bukrs.
perform bdc_field using 'RF02K-D0130'
'X'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-bankn(03)'.
perform bdc_field using 'BDC_OKCODE'
'=UPDA'.
*********bank details
CLEAR l_COUNTER.
LOOP AT IT_BANK WHERE LIFNR = IT_VENDOR-LIFNR.
l_COUNTER = l_COUNTER + 1.
clear l_string.
CONCATENATE 'lfbk-banks(' l_counter ')' into l_string.
perform bdc_field using l_string
it_bank-banks.
clear l_string.
CONCATENATE 'lfbk-bankl(' l_counter ')' into l_string.
perform bdc_field using l_string
it_bank-bankl.
clear l_string.
CONCATENATE 'lfbk-bankn(' l_counter ')' into l_string.
perform bdc_field using l_string
it_bank-bankn.
endloop.
******CALL TRANSACTION.
call transaction 'FK02' using it_bdcdata mode 'A'
messages into it_messages.
write:/ sy-subrc.
perform format_messages.
clear it_bdcdata.
refresh it_bdcdata.
endloop.
endform. " POPULATE_DATA
*& Form FORMAT_MESSAGES
form format_messages .
data: l_msg(100).
loop at it_messages.
call function 'FORMAT_MESSAGE'
exporting
id = it_messages-msgid
lang = sy-langu
no = it_messages-msgnr
v1 = it_messages-msgv1
v2 = it_messages-msgv2
v3 = it_messages-msgv3
v4 = it_messages-msgv4
importing
msg = l_msg
exceptions
not_found = 1
others = 2
write:/ l_msg.
endloop.
endform. " FORMAT_MESSAGES
*& Form bdc_dynpro
form bdc_dynpro using value(p_program)
value(p_screen).
it_bdcdata-program = p_program.
it_bdcdata-dynpro = p_screen.
it_bdcdata-dynbegin = 'X'.
append it_bdcdata.
clear it_bdcdata.
endform. " bdc_dynpro
*& Form bdc_field
form bdc_field using value(p_fnam)
value(p_fval).
it_bdcdata-fnam = p_fnam.
it_bdcdata-fval = p_fval.
append it_bdcdata.
clear it_bdcdata.
endform. " bdc_field
*& Form upload_file
form upload_file using p_p_file
p_p_file1.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = P_P_FILE
FILETYPE = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = IT_VENDOR
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE I000(ZZ) WITH 'UNABLE TO UPLOAD'.
STOP.
ENDIF.
*******UPLOADING BANK DETAILS
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = P_P_FILE1
FILETYPE = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = IT_BANK
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE I000(ZZ) WITH 'UNABLE TO UPLOAD'.
STOP.
ENDIF.
endform. " upload_file
*& Form f4_help1
-->P_P_FILE1 text
form f4_help1 using p_p_file1.
data:l_file1 type ibipparms-path.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = l_file1.
p_file1 = l_file1.
endform. " f4_help1
http://sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Regards,
Sankar -
How to create bdc with table control
hi all.
please some body tell me how to create bdc with table control
or suggest any www with screen shots
thanks in advance ,
aparnaHi AParna,
Its very Simple.
ALl you have to do is set up a counter based on the number of lines in the tabke. when the counter reaches the number of lines in the table hit the next page button which is at the top of every screen in SAP.
Please refer to the following BDC program I had developed using Table control,
this is for ME01 transaction.
LOOP AT T_EORD_HED.
SELECT SINGLE * FROM MARA WHERE MATNR = T_EORD_HED-MATNR.
IF SY-SUBRC = 0.
PERFORM BDC_DYNPRO USING 'SAPLMEOR' '0200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EORD-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'EORD-MATNR'
T_EORD_HED-MATNR. "'58335'.
PERFORM BDC_FIELD USING 'EORD-WERKS'
T_EORD_HED-WERKS. "'0253'.
L_COUNT = 1.
LOOP AT T_EORD WHERE MATNR = T_EORD_HED-MATNR
AND WERKS = T_EORD_HED-WERKS.
SELECT SINGLE * FROM LFA1 WHERE LIFNR = T_EORD-LIFNR.
IF SY-SUBRC = 0.
* Look into the if condition below
IF L_COUNT = 010.
L_COUNT = 1.
PERFORM BDC_DYNPRO USING 'SAPLMEOR' '0205'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EORD-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=NS'.
L_COUNT = L_COUNT + 1.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLMEOR' '0205'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EORD-AUTET(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'EORD-VDATU' '(' L_COUNT ')' INTO OPR_FIELD.
WRITE SY-DATUM TO T_EORD-VDATU.
PERFORM BDC_FIELD USING OPR_FIELD
T_EORD-VDATU.
CONCATENATE 'EORD-BDATU' '(' L_COUNT ')' INTO OPR_FIELD.
WRITE T_EORD-BDATU TO V_BDATU.
PERFORM BDC_FIELD USING OPR_FIELD
V_BDATU.
CONCATENATE 'EORD-LIFNR' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
T_EORD-LIFNR.
CONCATENATE 'EORD-EKORG' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
'0001'.
CONCATENATE 'EORD-RESWK' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
T_EORD-RESWK.
WRITE T_EORD-MEINS TO V_MEINS.
CONCATENATE 'EORD-MEINS' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
V_MEINS.
* CONCATENATE 'EORD-EBELN' '(' L_COUNT ')' INTO OPR_FIELD.
* PERFORM BDC_FIELD USING 'OPR_FIELD'
* T_EORD-EBELN.
CONCATENATE 'EORD-EBELP' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
T_EORD-EBELP.
IF T_EORD-FLIFN NE SPACE OR T_EORD-FRESW NE SPACE OR
T_EORD-FEBEL NE SPACE.
CONCATENATE 'RM06W-FESKZ' '(' L_COUNT ')' INTO OPR1_FIELD.
PERFORM BDC_FIELD USING OPR1_FIELD
'X'.
ENDIF.
IF T_EORD-NOTKZ <> ''.
CONCATENATE 'EORD-NOTKZ' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
'X'.
ENDIF.
CONCATENATE 'EORD-AUTET' '(' L_COUNT ')' INTO OPR_FIELD.
PERFORM BDC_FIELD USING OPR_FIELD
T_EORD-AUTET.
L_COUNT = L_COUNT + 1.
ENDIF.
ENDLOOP.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'EORD-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'ME01' USING I_BDCDATA
MODE UP_MODE
* optIONS FROM l_opt
MESSAGES INTO I_BDCMSGCOLL.
PERFORM FORMAT_OUTPUT.
ENDIF.
ENDLOOP. -
Hi,
How to write BDC, for Tcode KP06, How to handle the table control in that Tcode.
or any other way to upload data for this Tcode.
Regards
ManoharHi,
check the sample code for transaction ME51 and ME21.
PARAMETERS:
p_fname TYPE ibipparms-path.
*" Data declarations...................................................
Work variables *
DATA:
fs_bdc TYPE bdcdata,
fs_msg TYPE bdcmsgcoll.
Internal table to hold bdc data *
DATA:
t_bdc LIKE
STANDARD TABLE
OF fs_bdc.
Internal table to hold bdcmessage data *
DATA:
t_msg LIKE
STANDARD TABLE
OF fs_msg.
DATA:
w_string(50) TYPE c,
w_string1(19) TYPE c,
w_message(72) TYPE c,
w_num TYPE i VALUE 1,
w_num1 TYPE i.
*" Type declarations...................................................
Type declaration of the structure to hold header data *
DATA:
BEGIN OF t_header OCCURS 0,
ftype TYPE c,
doctype(10) TYPE c,
acctcat(4) TYPE c,
date(10) TYPE c,
plant(4) TYPE n,
text(10) TYPE c,
qty(5) TYPE n,
units(5) TYPE c,
pgrp(3) TYPE n,
mgrp(3) TYPE n,
price(2) TYPE n,
gacct(6) TYPE n,
cost(4) TYPE n,
END OF t_header.
START-OF-SELECTION EVENT *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
file_name = p_fname
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'c:\temp\item2.txt'
FILETYPE = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = t_header
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC <> 0
LOOP AT t_header WHERE ftype = 'H'..
CLEAR fs_msg.
IF t_header-ftype = 'H'.
PERFORM bdc_program USING 'SAPMM06B' '0100'.
PERFORM bdc_field USING 'eban-BSART' t_header-doctype.
PERFORM bdc_field USING 'eban-KNTTP' t_header-acctcat.
PERFORM bdc_field USING 'RM06B-EEIND' t_header-date.
PERFORM bdc_field USING 'eban-WERKS' t_header-plant.
PERFORM bdc_field USING 'BDC_OKCODE' 'AB'.
ENDIF.
IF t_header-ftype = 'I'.
LOOP AT t_header WHERE ftype = 'I'.
PERFORM bdc_program USING 'SAPMM06B' '0106'.
w_string = 'EBAN-TXZ01(01)'.
w_string+12(1) = w_num.
PERFORM bdc_field USING w_string t_header-text.
w_string = 'EBAN-MENGE(01)'.
w_string+12(1) = w_num.
PERFORM bdc_field USING w_string t_header-qty.
w_string = 'EBAN-MEINS(01)'.
w_string+12(1) = w_num.
PERFORM bdc_field USING w_string t_header-units.
w_string = 'EBAN-EKGRP(01)'.
w_string+12(1) = w_num.
PERFORM bdc_field USING w_string t_header-pgrp.
w_string = 'EBAN-MATKL(01)'.
w_string+12(1) = w_num.
PERFORM bdc_field USING w_string t_header-mgrp.
PERFORM bdc_field USING 'BDC_OKCODE' '=KN'.
w_num = w_num + 1.
PERFORM bdc_program USING 'SAPMM06B' '0102'.
PERFORM bdc_field USING 'EBAN-preis' t_header-price.
PERFORM bdc_field USING 'BDC_OKCODE' '=KN'.
PERFORM bdc_program USING 'SAPMM06B' '0505'.
PERFORM bdc_field USING 'BDC_OKCODE' '=KWE'.
PERFORM bdc_program USING 'SAPlkacb' '0002'.
PERFORM bdc_field USING 'EBAN-sakto' t_header-gacct.
PERFORM bdc_field USING 'cobl-kostl' t_header-cost.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_program USING 'SAPMM06B' '0102'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
ENDIF.
ENDLOOP.
ENDLOOP.
PERFORM bdc_program USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_OKCODE' 'BU'.
PERFORM BDC_PROGRAM USING 'SAPMM06E' '100'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' 'BACK'.
CALL TRANSACTION 'ME51' USING t_bdc MODE 'N' MESSAGES INTO t_msg.
LOOP AT t_msg INTO fs_msg.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = fs_msg-msgid
lang = sy-langu
no = fs_msg-msgnr
v1 = fs_msg-msgv1
v2 = fs_msg-msgv2
v3 = fs_msg-msgv3
v4 = fs_msg-msgv4
IMPORTING
msg = w_message
EXCEPTIONS
not_found = 1
OTHERS = 2.
WRITE:
/ w_message.
ENDLOOP.
CLEAR t_bdc[].
PERFORM bdc_program USING 'SAPMM06E' '0100'.
PERFORM bdc_field USING 'EKKO-LIFNR' '1000'.
PERFORM bdc_field USING 'EKKO-EKORG' '1000'.
PERFORM bdc_field USING 'EKKO-EKGRP' '100'.
PERFORM bdc_field USING 'BDC_OKCODE' 'BS'.
PERFORM bdc_program USING 'SAPMM06E' '0501'.
PERFORM bdc_field USING 'EKET-BANFN' fs_msg-msgv1.
PERFORM bdc_field USING 'BDC_OKCODE' '=KOPF'.
PERFORM bdc_program USING 'SAPMM06E' '0125'.
PERFORM bdc_field USING 'BDC_OKCODE' 'MALL'.
PERFORM bdc_program USING 'SAPMM06E' '0125'.
PERFORM bdc_field USING 'BDC_OKCODE' 'REFH'.
PERFORM bdc_program USING 'SAPMM06E' '0504'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_program USING 'SAPMM06E' '0111'.
PERFORM bdc_field USING 'BDC_OKCODE' '=NEXP'.
*perform bdc_program using 'SAPLSPO1' '0300'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' 'YES'.
PERFORM bdc_program USING 'SAPMM06E' '0504'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_program USING 'SAPMM06E' '0111'.
PERFORM bdc_field USING 'BDC_OKCODE' '=NEXP'.
*perform bdc_program using 'SAPMM06E' '0504'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTE'.
*perform bdc_program using 'SAPMM06E' '0111'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' '=NEXP'.
perform bdc_program using 'SAPMM06E' '0504'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTE'.
perform bdc_program using 'SAPMM06E' '0504'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTE'.
*perform bdc_program using 'SAPMM06E' '0111'.
*PERFORM BDC_FIELD USING 'BDC_OKCODE' '=NEXP'.
PERFORM bdc_program USING 'SAPMM06E' '0120'.
PERFORM bdc_field USING 'BDC_OKCODE' 'BU'.
CALL TRANSACTION 'ME21' USING t_bdc MODE 'N' MESSAGES INTO t_msg
LOOP AT t_msg INTO fs_msg.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = fs_msg-msgid
lang = sy-langu
no = fs_msg-msgnr
v1 = fs_msg-msgv1
v2 = fs_msg-msgv2
v3 = fs_msg-msgv3
v4 = fs_msg-msgv4
IMPORTING
msg = w_message
EXCEPTIONS
not_found = 1
OTHERS = 2.
WRITE:
/ W_message.
ENDLOOP. " LOOP T_MSG
CLEAR t_bdc[].
PERFORM bdc_program USING 'SAPMM06E' '0105'.
PERFORM bdc_field USING 'RM06E-BSTNR' fs_msg-msgv2.
PERFORM bdc_field USING 'BDC_OKCODE' 'AB'.
w_num1 = w_num - 1.
DO w_num1 TIMES.
w_string1 = 'RM06E-TCSELFLAG(00)'.
w_string1+17(1) = w_num1.
PERFORM bdc_program USING 'SAPMM06E' '0120'.
PERFORM bdc_field USING w_string1 'X'.
PERFORM bdc_field USING 'BDC_OKCODE' 'DL'.
w_num1 = w_num1 - 1.
ENDDO. " DO W_NUM1
PERFORM bdc_program USING 'SAPMM06E' '0120'.
PERFORM bdc_field USING 'BDC_OKCODE' 'BU'.
CALL TRANSACTION 'ME22' USING t_bdc MODE 'A' MESSAGES INTO t_msg.
LOOP AT t_msg INTO fs_msg.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = fs_msg-msgid
lang = sy-langu
no = fs_msg-msgnr
v1 = fs_msg-msgv1
v2 = fs_msg-msgv2
v3 = fs_msg-msgv3
v4 = fs_msg-msgv4
IMPORTING
msg = w_message
EXCEPTIONS
not_found = 1
OTHERS = 2.
WRITE:
/ w_message.
ENDLOOP. " LOOP T_MSG
*& Form bdc_program
This subroutine gives screenname and screen number *
There are no interface parameters to be passed to this subroutine. *
FORM bdc_program USING value(p_screen)
value(p_num).
CLEAR fs_bdc.
fs_bdc-program = p_screen.
fs_bdc-dynpro = p_num.
fs_bdc-dynbegin = 'X'.
APPEND fs_bdc TO t_bdc.
ENDFORM. " FORM BDC_PROGRAM
*& Form BDC_FIELD
This subroutine gives the field name and field value *
There are no interface parameters to be passed to this subroutine. *
FORM bdc_field USING value(p_name)
value(p_value).
CLEAR fs_bdc.
fs_bdc-fnam = p_name.
fs_bdc-fval = p_value.
APPEND fs_bdc TO t_bdc.
ENDFORM. " FORM BDC_FIELD
Regards,
jaya -
Best way how to write FPGA data in rt cRIO system in tdms file
Hej,
I am struggling to write measured data from an analog input (NI 9215) sampled at up to 20 kHz to a tdms file in the rt system (crio-9022). I just need to save several periods of 4 arbitrary analog signals at frequencies between 5 Hz and 1KHz. So storing up to 50k values should already be enough.
I use a high priority and a low priority loop. First I tried to adapt the example from the "Getting Started with CompactRIO - Logging Data to Disk" (http://zone.ni.com/devzone/cda/tut/p/id/11198). But when I used this in my high priority loop (running at 1ms), the loop runs out of time and the rt system becomes unresponsible. If I change the number of elements to write (the number of elements to wait for in the fifo read block) it becomes better, but still data is lost because the loop finishes late.
So I was thinking to create a RT fifo and to store all the values from the measurement first in this memory inside the high priority loop and then write the values to the tdms file in the low priority loop. This time I used the read/write fpga block instead of the FPGA fifo block. It was already working better but writing the files to the tdms file took a lot of time since each value was read and written to the tdms file individually. Unfortunately I could not find a possibility how to write the whole rt fifo to the tdms file at once. Is there a block available or is it possible to create a big array first and then write the data to the tdms file at once? My code I tried is in this second picture.
I hope someone can give me some tips which method should be better for my project and a hint what I did wrong or what I can optimize. I stucked for days now on how to save my measurements on the cRIO system.
Thank you very much in advance. Have a nice weekend.
Best regards
Andy
Solved!
Go to Solution.HiXiebo and Christian,
thank you very much for your answers. Actually, my high priority loop is much slower. I run it with a maximum loop time of 50us = 20kHz or slower, depending on my Signal I want to measure. So my data producing rate is maximum 4*8*20k=640 KB/s. My low priority loop runs at 2ms to 5 ms (much slower then the high priority loop), since I am doing just some simple math calculation there and control the front panel in this loop.
I understand that it is much more efficient to write blocks of data (e.g. 1024*32KB instead of just 32KB) to a file with TDMS. But is it also the same for a queue or RT FIFO, i.e. does the block size of the data chunks also matter for the queue and RT FIFO?
@Xiebo: I understand that caching the read data from the FPGA in the high priority loop first will improve my code. But I do not know how I can cache the data I read? I was thinking to do it with the FPGA FIFO, but the FPGA read/write blocks seem to be faster for me and I do not know why? Can you tell me a block/vi to cache the data I read from the FPGA or maybe even an example?
@Christian: This NI_MinimumBufferSize property looks exactly what I was looking for. But my question is now if I should put the tdms write VI's in my high priority loop and read directly from the FPGA FIFO buffer to the file as it is done in the Disk logging example at http://zone.ni.com/devzone/cda/tut/p/id/11198? Or is it better to read the data from the FPGA via the FPGA read/write function, write the data to a RT FIFO in the high priority loop and then write the data with the NI_MinimumBufferSize property option to the tdms file from the RT FIFO in the low priority loop?
In summary, I am still unsure if the FPGA FIFO or the FPGA read/write function with a queue or RT FIFO is better for me and how I can create a cache to build chunks of data blocks to write.
Thank you very much in advance for your help.
Best regards
Andy -
Can any one please tell me how to write labview program for data logging in electric motor bike. I am going to use CompactRIO for getting wide range of data from various sensors in bike. I need to write labview program for data logging of temperature, voltage and speed of the bike. Can any one help me?
Yes, we can.
I think the best place for you to start for this is the NI Developer Zone. I recommend beginning with these tutorials I found by searching on "data log rio". There were more than just these few that might be relevant to your project but I'll leave that for you to decide.
NI Compact RIO Setup and Services -> http://zone.ni.com/devzone/cda/tut/p/id/11394
Getting Started with CompactRIO - Logging Data to Disk -> http://zone.ni.com/devzone/cda/tut/p/id/11198
Getting Started with CompactRIO - Performing Basic Control -> http://zone.ni.com/devzone/cda/tut/p/id/11197
These will probably give you links to more topics/tutorials/examples that can help you design and implement your target system.
Jason
Wire Warrior
Behold the power of LabVIEW as my army of Roomba minions streaks across the floor! -
How to write the logic for extending Idocs...
Hi,
Can anybody pls explain how to write the logic for extending IDOCs with an example...
Good suggestions can be appreciated..
Regards,
RamHi Ram,
Generally the IDoc user exit is called at the following places:
1) When the control record is read.
2) After each and every segment in the data record
3) At the end of the data segment processing.
The IDoc user exit interface generally imports IDOC_DATA (data record internal table) table. Now the data records in the internal table should appear in the same order as maintained while defining IDoc structure (WE30 transaction). For SAP standard segment SAP code will take care of this. For extended segment you will have to take care of this aspect by appending the Z-segment in the IDOC_DATA table.
You can do this by:
looping at IDOC_DATA table:
- Do a case-endcase fo IDOC_DATA-SEGNAM (This stores the segment
structure as per the hierarchy).
- Within the case for "Z-segment" you can write the logic for appending
the Z-segment to IDOC_DATA-SDATA.
Hope this gives some clue.
Regards,
Gajendra.
Maybe you are looking for
-
Hi, I'm trying to find a way to control my blacks while digitizing footage in via a component cable and a aja Kona LHE card. I noticed that in the clip settings on the digitize window there are slioders for hue,sat, bright, Contras, black and white b
-
Customer Master Data and Line Items Balances Display - Authorization Group
One autorization group was created and assigned to some customer masters in General, Company Code and Sales Area's. User is restricted to one authorization group. When executing FBL5N, all customer balances are displayed i.e. including blank authoriz
-
Dear All, please let me know in which table is EMAIL ID Stored of Vendor Regards Amey
-
How to get the type of the object poped from a stack
Hi, I have a stack which contains Boolean, Integer, MyBean objects. Now depending on the type of object pop from stack i want to perform the different operations. Right now i m doing it like this: Object a = stk.pop(); // stk is my stack if ( a insta
-
Building Tree hierarchy Using nested loops and class cl_gui_column_tree
Hello gurus, I want to create a tree report using custom container and class cl_gui_column_tree. I have read and understood the standard demo report which SAP has provided i.e. SAPCOLUMN_TREE_CONTROL_DEMO. But in this report all the levels nodes are