What are the performance of stream to disk on a PCI-5112? Has someone benchmarked it once?
I need to stream 30MS/s for 2minutes on a hard drive. Anyone did that? What was the platform and the results?
Thanks, fred
Fred,
The fastest we have been able to stream to disk with the PCI 5112 is 25MS/s on a machine that can stream raw data to disk at 130+MS/s. One thing to keep in mind is that you can't actually get 30MS/s for you sample rate with the 5112. The valid sample rates are 100/n MS/s where n is an integer value. Therefore, if you enter 30MS/s for your sampling rate, you will get 33MS/s for the actual sample rate.
Similar Messages
-
What are the performance tools in ABAP ?
What are the performance tools in ABAP ?
some thing like SQL Trace, Runtime Analysis ......what else ?hi,
Runtime Monitor
http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
Memory Inspector
http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
Run Time Analyser
http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
SQL trace
http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm -
What are the 3-bit field choices for Hw_Arm_Sel in PCI-6601
Hi,
I am programming our own driver to operate the PCI-6601. For our application we need hardware arm option. I know it is possible to use 2 counters for that, but NI-TIO should support also hw_arm. Although it is not explained in the registry document at all, after some tedious check in the DDK examples I found that this bits are located in the Gi counting mode register. I know the position of the HW_enable as well as the position of the 3 bits for pin sellect options. What I do not know is What are the 3-bit field choices for Hw_Arm_Sel . I contacted NI support but got no support. How can NI sell boards and when a customer who is not using LAbview or Measurement Studio or DDK, but is implementing his own driver is then so arrogantly turned down from NI? Also, how can NI publish just part of the registers the board support, and when a customer contacs and asks for some registers get not at all support? I can not foretell the missing registers, and it is pretty unprofessional to document just partly the registers of 660x devices. And on request you got nothing.
I hope someone from the community know about this Hw_Arm_Sel 3 pin options. Otherwise, there is just an option of error and trial. Or simply throw the board in the garbage.
Dr. Kirco Arsov
Solved!
Go to Solution.Hi Kirco,
I have some more information for you :-)
I haven't been able to speak to the developer who is the most familiar with TIO programming since he's out of the office, but I have come across his notes from when he was writing support for the DAQmx driver.
As I described earlier, the HW_Arm_Sel bits don't select a connector I/O pin, but an internal trigger signal. There are seven internal trigger lines, and the HW_Arm_Sel bits map directly to the internal trigger signal: 0b000 - 0b111 map to 0d0 - 0d7. In order to route an I/O pin to an internal trigger, you must also write to a few more registers.
From what I've read, there are two more register families that need to be programmed: TG_x_LevelEdgeReg and TG_x_CombinationReg, where x is the internal trigger number. In your case, you only need one pin from the I/O connector to be your arm start trigger, so TG_0_LevelEdgeReg and TB_0_CombinationReg will suffice for your application.
TB_0_LevelEdgeReg :: Offset 0x660
TG_0_LevelEdgeReg is only 8 bits wide, and maps as follows:
7..6: EdgeMode
5..0: LESel
LESel selects the I/O connector pin to use as the source for the internal trigger signal. 0d0 - 0d39 will select the I/O pin of the same number. NB: behavior for TG_x_LevelEdgeReg is more limited for triggers 1-7, and only a small subset of the I/O pins can be selected for those trigger signals. Trigger 0 can use any I/O pin. Setting these bits to 0d63 forces the trigger source low, and can be used as a way to 'unroute' it when you're finished with your program.
EdgeMode determines whether the TIO will detect an edge of the incoming signal, or just pass the signal level straight through. When detecting edges, it will latch the signal and generate a single TIMEBASE3 pulse instead. 0b00 sets level mode; 0b01 sets rising edge; 0b10 sets falling edge; 0b11 sets either edge.
TG_0_CombinationReg :: Offset 0x6A0
TG_0_CombinationReg is 32 bits wide, and has three fields of interest:
19..16: CombFunction
5..4: CombTypeB
1..0: CombTypeA
CombTypeA controls which trigger subsystem to use as the source for the trigger signal. Since you're coming from an I/O pin and using the edge/level subsystem, you must set these bits to 0b01.
CombTypeB is similar to CombTypeA, and although you won't be using trigger B, set it to 0b01 to be safe.
CombFunction performs a simple logic function on A and B. Since you're only using a single I/O connector, you only need the A output, so set these bits to 0b1100.
All of the other bits should be set to 0b0.
Unfortunately, I'm unable to test these statements since my test machine is currently being used for another research project. Please let me know what happens if you decide to test.
Joe Friedchicken
NI VirtualBench Application Software
Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
Senior Software Engineer :: Multifunction Instruments Applications Group
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008) -
What are the performance implications moving apps using cloud drive to Azure File Services?
I run a number of cloud services with 5 or more nodes in using cloud drives. Cloud drive is scheduled to be deprecated in 2015. So I am thinking of replacing the cloud drive with Azure Files service.
For each cloud service I am using one storage account to create all the the VHD/cloud drives. Some people at the time when cloud drive first appeared, told me that to get better performance, I should create only one VHD/Cloud Drive
under only one storage account. For example, if I have five instances under a worker role then I should create 5 storage accounts and create one VHD/Cloud Drive under each storage account to be used by each node. I didn't follow that route because I was satisfied
with the performance of the apps under cloud services having all VHD/Cloud Drives under one storage account.
My question is, if I replace cloud drive with Azure file services, will my apps perform well having all shares under one storage account or create one storage account for each share?
Thanks,
@nazik_huqThanks Obama for replying.
Here is the comment from @jaiharidas of MSFT if anyone's interested:
@Naziq, It is better to have multiple shares under single storage account and there is no perf implications. However, please ensure that your ingress/egress and request/sec is within
the limits of a single storage account (seemsdn.microsoft.com/.../dn249410.aspx)
and use multiple storage accounts if you need to scale beyond the limits.
See the original comment on Azure Storage Team here: http://ow.ly/ChPNf
@nazik_huq -
What are the maximum sustainable streaming rates to USRP RIO
Hi,
I am using a USRP-2942R. Using one of the example VIs (host based), we created a VI which would record 2 or 4 channels simultaneously to a data file (we use two such devices for the 4 channel capture). We would like to do this continuously for as long as possible. By recording to our Solid State Drive, we can achieve rates of about 20MS/s per channel when capturing two channels or 10 MS/s per channel when capturing 4 channels. However, we cannot seem to go much above this rate. Even if we setup a RAM drive for the file, we still have issues above 20 MS/s for two channels. So, it does not seem that the file writing is the bottleneck.
I am wondering if there is any example code for doing this exact function. Perhaps we have done something wrong in modifying the example we had. Do you know what sample rates we should expect to achive when recording to a RAM file. By comparison, if I run these same USRPs on this same PC but using the Ettus UHD software under Linux Ubuntu 14.04, I can achieve 100MS/s per channel on two channels when recording to a RAM file.
Thanks.
Rob KosslerAs a quick aside:
PCIe gen 1 is 250 MB/s per lane. The USRP RIO supports PCIe gen 1 x4, for 1 GB/s, but that 'G' is 1000, and not 1024. So in terms of bytes, it ends up being ~953 MB/s. Next, we have to remove some of the throughput for packet overhead and lastly the read response packet size. The larger the read response packet, the less packet overhead incurred. In the end, the USRP RIO can stream about 832 MB/s to the host. 800 MB/s is a nice, round number though.
Each channel has an 16-bit I and Q portion, and there are two channels. Setting the IQ rate (sample rate) to 120 MS/s results in 120 MS/s * 2 channels * 4 bytes/channel = 960 MB/s, which exceeds the total throughput of the PCIe bus. It is impossible to continuously stream both channels at 120 MS/s back to the host. However, lowering the sample rate to 100 MS/s results in 800 MB/s. Or, if you use just one channel, you'll be at 480 MB/s.
That takes care of the throughput, but there are additional issues. There are other things on the PCIe bus, and so bus hiccups may occur and the memory controller may not service the read requests from the device fast enough. If data is not pulled out of the USRP's FIFOs fast enough, the FIFOs will fill up. You can increase the size of the FPGA's DMA FIFOs in the target's settings in the project. A larger DMA FIFO will make the USRP more resilient to these hiccups.
Next, after the data is transfered from the USRP to the host PC's memory, the host PC has to do something with it. If you have complex math or graphs, the rate at which the host PC can pull data from its FIFO may be too slow. If the host's FIFO fills up, then no more data from the FPGA can be transferred. So, you can (1) increase the host's DMA FIFO buffer depth, or two, increase the rate at which the host pulls data from its FIFO (i.e. reduce CPU computation).
There are additional tweaks, such as using Zero Copy DMA, too, which can yield large improvements to streaming performance.
So, in conclusion, high throughput streaming is hard, but it's possible. The Sample Project has to cover a wide range of use-cases and care-abouts, so it cannot perfectly solve every problem. But, it can stream at full rate. By default, the FPGA's FIFOs' buffers are around 1000 elements. If you set the sample size to less than 1000, and set the sample rate to 120 MS/s, and do bursty/finite streaming, you will be able to stream at full rate. Your data will not be contiguous though. To do continuous streaming, you'll need to look into the above suggestions.
Hope this helps!
-
What are the performance tradeoffs when using more than one EntityStore?
Hi,
I have different accounts where each account has the same set of Entity classes. I don't know yet wheter to have one EntityStore for each account or have one EntityStore for all accounts together and do a lot of 'joining' when retrieving Entities.
This is a very similar use case as with the FAQ http://www.oracle.com/technology/products/berkeley-db/faq/je_faq.html#37 . The only difference is that I want to use DTP.
It would be great if you could answer me the following questions:
1.) Do basicly the same answers as in the FAQ apply to EntityStores?
2.) How expensive is an EntityStore (memory, speed - creating and releasing)?
3.) What would you recommend? I have to do a lot of secondary-index lookups which are restricted to one account. There are about 10 Entity classes and about 1000 accounts.
Thanks,
ChristianHello,
It would be great if you could answer me the
following questions:
1.) Do basicly the same answers as in the FAQ apply
to EntityStores?Yes, they apply.
2.) How expensive is an EntityStore (memory, speed -
creating and releasing)?For each store, there is an underlying Database per entity class and per secondary key. And for each store there is a catalog database which is also kept in memory.
3.) What would you recommend? I have to do a lot of
secondary-index lookups which are restricted to one
account. There are about 10 Entity classes and about
1000 accounts. I recommend using a single store for best performance and resource utilization.
Mark -
What are the best protective cases to have for iphone 4
without insurance, I want to have to best case to protect my phone. what are the best cases to have?
Check mgadget.net it has a lot of great iPhone 4 protection cases. Few links you can find bellow.
Rokform Rokbed Fuzion
Speck CandyShell Grip Case
OtterBox Defender Series Hybrid
Acase(TM) Superleggera PRO
Urban Armor Gear Composite
LifeProof Case
Trident CYCLOPS Series Case
Seidio CONVERT Case and Holster Combo -
What are the steps if; the disk cannot be partitioned because some files cannot be moved
I'm to install windows XP software, and I can partition the disk. If state, "The disk cannot be partitioned because some files canot be moved." What are the steps to complete partition to install windows XP?
Ok what happens with Bootcamp is it needs to carve out a contiguous free space at the bottom of your hard drive.
If it can't do that then it can't make the partition.
What has happened is there are some files down in closer in the bottom part of the drive, this occurs if you've had a hard drive nearly full, performed a software update, installed programs and then removed some files leaving parts and large empty spaces.
So what to do to fix this?
Well your going to have to learn how to clone your OS X boot partition, with all your programs and files to a external drive, which you can then hold the option key and boot from it.
Then you run Disk Utility from the clone, erase the OS X partition on the internal drive and clone everything right back.
This will place everything in order, move everything up and nice and compact at the top of the drive, which will allow you to make a BootCamp partition as big as you have room for.
It will also make your comptuer perform a bit faster too.
Cloning back and forth is rather safe, because you always have a hold option key bootable clone, either on the internal drive or the external drive, your computer will work from either.
What you don't want to use is Defrag software, that moves things around while the computer is running and messes things up quite a bit and really doesn't optimize as well or as safely as a clone.
In fact I just assisted a person who did just that and royally messed up their machine, requiring a complete rebuild of everything.
So read through this thread of mine and grasp things and you'll be cloning your boot drive in no time.
https://discussions.apple.com/message/16276201#16276201
Remember that cloning can't clone Filevaulted drives or Bootcamp partitions, also it only (at this time) clones the OS X partition, which for Snow Leopard is the whole drive usually (minus Bootcamp partition.)
However if your on Lion, Carbon Copy Cloner doesn't quite yet clone the hidden Lion Recovery Partition, so when you clone you won't have it on the external drive but the computer will boot off the external drive just fine without it.
So when you go to erase the Lion internal drive, you need to erase only the OS X Lion Partition not the entire drive before reverse cloning.
You should make a Lion Recovery USB if you have Lion, as only through Lion Recvoery can you reinstall Lion now. Instrucitons are in my thread.
The way you can tell if your selecting a partition or a entire drive in Disk Utility is how far left it is.
The far left are devices and the slightly indented items are partitions or media using that device.
Good Luck -
What are the main tables using in vendor performance report.
what are the main tables using in vendor performance report.
how many select statements are in ABAP reports.Refer the links -
vendor performance report !!!
vendor performance report
vendor performance report
I need standard vendor performance report
Regards,
Amit
Reward all helpful replies. -
What is vendor performance report what are the fields using in the report
What is vendor performance report what are the fields using in the report and i need some sample reports for that particular topic (clasical report)not using any alvs or any advance topics.
U R Satish Patnaikhi
good
*"Table declarations...................................................
TABLES:
EKKO, " Purchasing Document Header
CDHDR, " Change document header
SSCRFIELDS. " Fields on selection screens
*"Selection screen elements............................................
SELECT-OPTIONS:
S_EBELN FOR EKKO-EBELN, " Purchasing Document Number
S_LIFNR FOR EKKO-LIFNR, " Vendor's account number
S_EKGRP FOR EKKO-EKGRP, " Purchasing group
S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date
S_UDATE FOR CDHDR-UDATE. " Creation date of the change
" document
*" Data declarations...................................................
Field String to hold Purchase Document Number *
DATA:
BEGIN OF FS_EBELN,
EBELN(90) TYPE C, " Purchase Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created
" the Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EBELN,
Field String to hold Purchase Document Header *
BEGIN OF FS_EKKO,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EKKO,
Field String to hold Account Number and name of the Vendor *
BEGIN OF FS_LFA1,
LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor
NAME1 TYPE LFA1-NAME1, " Name1
END OF FS_LFA1,
Field String to hold Change date and the name of the user *
BEGIN OF FS_CDHDR,
OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class
OBJECTID TYPE CDHDR-OBJECTID, " Object value
CHANGENR TYPE CDHDR-CHANGENR, " Document change number
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
END OF FS_CDHDR,
Field String to hold Change document items *
BEGIN OF FS_CDPOS,
OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class
OBJECTID(10) TYPE C, " Object Value
CHANGENR TYPE CDPOS-CHANGENR, " Document change number
TABNAME TYPE CDPOS-TABNAME, " Table Name
FNAME TYPE CDPOS-FNAME, " Field Name
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_CDPOS,
Field String to hold Date Element Name *
BEGIN OF FS_DATAELE,
TABNAME TYPE DD03L-TABNAME, " Table Name
FIELDNAME TYPE DD03L-FIELDNAME, " Field Name
ROLLNAME TYPE DD03L-ROLLNAME, " Data element (semantic domain)
END OF FS_DATAELE,
Field String to hold Short Text of the Date Element *
BEGIN OF FS_TEXT,
ROLLNAME TYPE DD04T-ROLLNAME, " Data element (semantic domain)
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
END OF FS_TEXT,
Field String to hold data to be displayed on the ALV grid *
BEGIN OF FS_OUTTAB,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
WERKS TYPE LFA1-WERKS, " Plant
NAME1 TYPE LFA1-NAME1, " Name1
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_OUTTAB,
Internal table to hold Purchase Document Number *
T_EBELN LIKE STANDARD TABLE
OF FS_EBELN,
Internal table to hold Purchase Document Header *
T_EKKO LIKE STANDARD TABLE
OF FS_EKKO,
Temp Internal table to hold Purchase Document Header *
T_EKKO_TEMP LIKE STANDARD TABLE
OF FS_EKKO,
Internal table to hold Account number and Name of the Vendor *
T_LFA1 LIKE STANDARD TABLE
OF FS_LFA1,
Internal Table to hold Change date and the name of the user *
T_CDHDR LIKE STANDARD TABLE
OF FS_CDHDR,
Internal Table to hold Change document items *
T_CDPOS LIKE STANDARD TABLE
OF FS_CDPOS,
Temp. Internal Table to hold Change document items *
T_CDPOS_TEMP LIKE STANDARD TABLE
OF FS_CDPOS,
Internal Table to hold Data Element Name *
T_DATAELE LIKE STANDARD TABLE
OF FS_DATAELE,
Temp. Internal Table to hold Data Element Name *
T_DATAELE_TEMP LIKE STANDARD TABLE
OF FS_DATAELE,
Internal Table to hold Short Text of the Date Element *
T_TEXT LIKE STANDARD TABLE
OF FS_TEXT,
Internal Table to hold data to be displayed on the ALV grid *
T_OUTTAB LIKE STANDARD TABLE
OF FS_OUTTAB.
C L A S S D E F I N I T I O N *
CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
*" Data declarations...................................................
Work variables *
DATA:
W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number
W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number
W_EKGRP TYPE EKKO-EKGRP, " Purchasing group
W_VALUE TYPE EKKO-EBELN, " Reflected Value
W_SPACE VALUE ' ', " Space
W_FLAG TYPE I, " Flag Variable
W_VARIANT TYPE DISVARIANT, " Variant
*--- ALV Grid
W_GRID TYPE REF TO CL_GUI_ALV_GRID,
*--- Event Handler
W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
*--- Field catalog table
T_FIELDCAT TYPE LVC_T_FCAT.
AT SELECTION-SCREEN EVENT *
AT SELECTION-SCREEN ON S_EBELN.
Subroutine to validate Purchase Document Number.
PERFORM VALIDATE_PD_NUM.
AT SELECTION-SCREEN ON S_LIFNR.
Subroutine to validate Vendor Number.
PERFORM VALIDATE_VEN_NUM.
AT SELECTION-SCREEN ON S_EKGRP.
Subroutine to validate Purchase Group.
PERFORM VALIDATE_PUR_GRP.
START-OF-SELECTION EVENT *
START-OF-SELECTION.
Subroutine to select all Purchase orders.
PERFORM SELECT_PO.
CHECK W_FLAG EQ 0.
Subroutine to select Object values.
PERFORM SELECT_OBJ_ID.
CHECK W_FLAG EQ 0.
Subroutine to select Changed values.
PERFORM SELECT_CHANGED_VALUE.
CHECK W_FLAG EQ 0.
Subroutine to Select Purchase Orders.
PERFORM SELECT_PUR_DOC.
Subroutine to select Vendor Details.
PERFORM SELECT_VENDOR.
Subroutine to select Text for the Changed values.
PERFORM DESCRIPTION.
END-OF-SELECTION EVENT *
END-OF-SELECTION.
IF NOT T_EKKO IS INITIAL.
Subroutine to populate the Output Table.
PERFORM FILL_OUTTAB.
Subroutine to build Field Catalog.
PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.
CALL SCREEN 100.
ENDIF. " IF NOT T_EKKO...
CLASS LCL_EVENT_HANDLER DEFINITION
Defining Class which handles events
CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS:
HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID.
ENDCLASS. " LCL_EVENT_HANDLER DEFINITION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
Implementing the Class which can handle events
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
*---Handle Double Click
METHOD HANDLE_HOTSPOT_CLICK .
Subroutine to get the HotSpot Cell information.
PERFORM GET_CELL_INFO.
SET PARAMETER ID 'BES' FIELD W_VALUE.
CALL TRANSACTION 'ME23N'.
ENDMETHOD. " HANDLE_HOTSPOT_CLICK
ENDCLASS. " LCL_EVENT_HANDLER
*& Module STATUS_0100 OUTPUT
PBO Event
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'OOPS'.
SET TITLEBAR 'TIT'.
Subroutine to fill the Variant Structure
PERFORM FILL_VARIANT.
IF W_GRID IS INITIAL.
CREATE OBJECT W_GRID
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
I_PARENT = CL_GUI_CONTAINER=>SCREEN0
I_APPL_EVENTS =
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
I_FCAT_COMPLETE = SPACE
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5.
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
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT = W_VARIANT
I_SAVE = 'A'
I_DEFAULT = 'X'
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = T_OUTTAB
IT_FIELDCATALOG = T_FIELDCAT
IT_SORT =
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4
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.
ENDIF. " IF W_GRID IS INITIAL
CREATE OBJECT W_EVENT_CLICK.
SET HANDLER W_EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
PAI Event
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form PREPARE_FIELD_CATALOG
Subroutine to build the Field catalog
<--P_T_FIELDCAT Field Catalog Table
FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
DATA LS_FCAT TYPE LVC_S_FCAT.
Purchasing group...
LS_FCAT-FIELDNAME = 'EKGRP'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Purchasing Document Number...
LS_FCAT-FIELDNAME = 'EBELN'.
LS_FCAT-REF_TABLE = 'EKKO' .
LS_FCAT-EMPHASIZE = 'C411'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-HOTSPOT = 'X'.
APPEND LS_FCAT TO PT_FIELDCAT .
CLEAR LS_FCAT .
Name of Person who Created the Object...
LS_FCAT-FIELDNAME = 'ERNAM'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-OUTPUTLEN = '15' .
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Purchasing Document Date...
LS_FCAT-FIELDNAME = 'BEDAT'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Vendor's account number...
LS_FCAT-FIELDNAME = 'LIFNR'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Account Number of Vendor or Creditor...
LS_FCAT-FIELDNAME = 'NAME1'.
LS_FCAT-REF_TABLE = 'LFA1'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Vendor Name'(001).
LS_FCAT-SELTEXT = 'Vendor Name'(001).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Creation date of the change document...
LS_FCAT-FIELDNAME = 'UDATE'.
LS_FCAT-REF_TABLE = 'CDHDR'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Change Date'(002).
LS_FCAT-SELTEXT = 'Change Date'(002).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
User name of the person responsible in change document...
LS_FCAT-FIELDNAME = 'USERNAME'.
LS_FCAT-REF_TABLE = 'CDHDR'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Modified by'(003).
LS_FCAT-SELTEXT = 'Modified by'(003).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Short Text Describing R/3 Repository Objects...
LS_FCAT-FIELDNAME = 'DDTEXT'.
LS_FCAT-REF_TABLE = 'DD04T'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '15'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Old contents of changed field...
LS_FCAT-FIELDNAME = 'VALUE_OLD'.
LS_FCAT-REF_TABLE = 'CDPOS'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
New contents of changed field...
LS_FCAT-FIELDNAME = 'VALUE_NEW'.
LS_FCAT-REF_TABLE = 'CDPOS'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
ENDFORM. " PREPARE_FIELD_CATALOG
*& Form SELECT_PO
Subroutine to select all the Purchase Orders
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PO .
SELECT EBELN " Purchasing Document Number
ERNAM " Name of Person who Created
" the Object
LIFNR " Vendor's account number
EKGRP " Purchasing group
BEDAT " Purchasing Document Date
FROM EKKO
PACKAGE SIZE 10000
APPENDING TABLE T_EBELN
WHERE EBELN IN S_EBELN
AND BEDAT IN S_BEDAT.
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S401(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDFORM. " SELECT_PO
*& Form SELECT_OBJ_ID
Subroutine to select Object ID
There are no interface parameters to be passed to this subroutine.
FORM SELECT_OBJ_ID .
IF NOT T_EBELN IS INITIAL.
SELECT OBJECTCLAS " Object Class
OBJECTID " Object value
CHANGENR " Document change number
USERNAME " User name
UDATE " Creation date
FROM CDHDR
INTO TABLE T_CDHDR
FOR ALL ENTRIES IN T_EBELN
WHERE OBJECTID EQ T_EBELN-EBELN
AND UDATE IN S_UDATE
AND TCODE IN ('ME21N','ME22N','ME23N').
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S833(M8) WITH 'Header Not Found'(031).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EBELN IS INITIAL
ENDFORM. " SELECT_OBJ_ID
*& Form SELECT_CHANGED_VALUE
Subroutine to select Changed Values
There are no interface parameters to be passed to this subroutine.
FORM SELECT_CHANGED_VALUE .
IF NOT T_CDHDR IS INITIAL.
SELECT OBJECTCLAS " Object class
OBJECTID " Object value
CHANGENR " Document change number
TABNAME " Table Name
FNAME " Field Name
VALUE_NEW " New contents of changed field
VALUE_OLD " Old contents of changed field
FROM CDPOS
PACKAGE SIZE 10000
APPENDING TABLE T_CDPOS
FOR ALL ENTRIES IN T_CDHDR
WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
AND OBJECTID EQ T_CDHDR-OBJECTID
AND CHANGENR EQ T_CDHDR-CHANGENR.
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S833(M8) WITH 'Item Not Found'(032).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_CDHDR IS INITIAL
T_CDPOS_TEMP[] = T_CDPOS[].
ENDFORM. " SELECT_CHANGED_VALUE
*& Form SELECT_PUR_DOC
Subroutine to select Purchase Order Details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PUR_DOC .
IF NOT T_CDPOS IS INITIAL.
SORT T_EBELN BY EBELN.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
FS_CDPOS-OBJECTID BINARY SEARCH.
IF SY-SUBRC NE 0.
DELETE TABLE T_EBELN FROM FS_EBELN.
ENDIF. " IF SY-SUBRC NE 0.
ENDLOOP. " LOOP AT T_CDPOS...
LOOP AT T_EBELN INTO FS_EBELN.
MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
APPEND FS_EKKO TO T_EKKO.
ENDLOOP. " LOOP AT T_EBELN...
T_EKKO_TEMP[] = T_EKKO[].
ENDIF. " IF NOT T_CDPOS IS INITIAL
ENDFORM. " SELECT_PUR_DOC
*& Form SELECT_VENDOR
Subroutine to select Vendor details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_VENDOR .
IF NOT T_EKKO IS INITIAL.
SORT T_EKKO_TEMP BY LIFNR.
DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.
SELECT LIFNR " Account Number of Vendor or
" Creditor
NAME1 " Name 1
FROM LFA1
INTO TABLE T_LFA1
FOR ALL ENTRIES IN T_EKKO_TEMP
WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.
IF SY-SUBRC NE 0.
MESSAGE S002(M8) WITH 'Master Details'(033).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EKKO IS INITIAL
ENDFORM. " SELECT_VENDOR
*& Form DESCRIPTION
Subroutine to get the description
There are no interface parameters to be passed to this subroutine.
FORM DESCRIPTION .
IF NOT T_CDPOS IS INITIAL.
SORT T_CDPOS_TEMP BY TABNAME FNAME.
DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME
SELECT TABNAME " Table Name
FIELDNAME " Field Name
ROLLNAME " Data element
FROM DD03L
INTO TABLE T_DATAELE
FOR ALL ENTRIES IN T_CDPOS_TEMP
WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME
AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.
IF NOT T_DATAELE IS INITIAL.
T_DATAELE_TEMP[] = T_DATAELE[].
SORT T_DATAELE_TEMP BY ROLLNAME.
DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.
SELECT ROLLNAME " Data element
DDTEXT " Short Text Describing R/3
" Repository Objects
FROM DD04T
INTO TABLE T_TEXT
FOR ALL ENTRIES IN T_DATAELE_TEMP
WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME
AND DDLANGUAGE EQ SY-LANGU.
IF SY-SUBRC NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_DATAELE IS INITIAL.
ENDIF. " IF NOT T_CDPOS IS INITIAL.
ENDFORM. " DESCRIPTION
*& Form FILL_OUTTAB
Subroutine to populate the Outtab
There are no interface parameters to be passed to this subroutine.
FORM FILL_OUTTAB .
SORT T_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.
SORT T_EKKO BY EBELN.
SORT T_LFA1 BY LIFNR.
SORT T_DATAELE BY TABNAME FIELDNAME.
SORT T_TEXT BY ROLLNAME.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY
OBJECTCLAS = FS_CDPOS-OBJECTCLAS
OBJECTID = FS_CDPOS-OBJECTID
CHANGENR = FS_CDPOS-CHANGENR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.
READ TABLE T_EKKO INTO FS_EKKO WITH KEY
EBELN = FS_CDHDR-OBJECTID
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY
LIFNR = FS_EKKO-LIFNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
TABNAME = FS_CDPOS-TABNAME
FIELDNAME = FS_CDPOS-FNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE T_TEXT INTO FS_TEXT WITH KEY
ROLLNAME = FS_DATAELE-ROLLNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
APPEND FS_OUTTAB TO T_OUTTAB.
CLEAR FS_OUTTAB.
ENDLOOP.
ENDFORM. " FILL_OUTTAB
*& Form GET_CELL_INFO
Subroutine to get the Cell Information
--> W_VALUE Holds the value of Hotspot clicked
FORM GET_CELL_INFO .
CALL METHOD W_GRID->GET_CURRENT_CELL
IMPORTING
E_ROW =
E_VALUE = W_VALUE
E_COL =
ES_ROW_ID =
ES_COL_ID =
ES_ROW_NO =
ENDFORM. " GET_CELL_INFO
*& Form VALIDATE_PD_NUM
Subroutine to validate Purchase Document Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PD_NUM .
IF NOT S_EBELN[] IS INITIAL.
SELECT EBELN " Purchase Document Number
FROM EKKO
INTO W_EBELN
UP TO 1 ROWS
WHERE EBELN IN S_EBELN.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E717(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EBELN[]...
ENDFORM. " VALIDATE_PD_NUM
*& Form VALIDATE_VEN_NUM
Subroutine to validate Vendor Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_VEN_NUM .
IF NOT S_LIFNR[] IS INITIAL.
SELECT LIFNR " Vendor Number
FROM LFA1
INTO W_LIFNR
UP TO 1 ROWS
WHERE LIFNR IN S_LIFNR.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E002(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_LIFNR[]...
ENDFORM. " VALIDATE_VEN_NUM
*& Form VALIDATE_PUR_GRP
Subroutine to validate the Purchase Group
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PUR_GRP .
IF NOT S_EKGRP[] IS INITIAL.
SELECT EKGRP " Purchase Group
FROM T024
INTO W_EKGRP
UP TO 1 ROWS
WHERE EKGRP IN S_EKGRP.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E622(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EKFRP[]...
ENDFORM. " VALIDATE_PUR_GRP
*& Form FILL_VARIANT
Subroutine to fill the Variant Structure
There are no interface parameters to be passed to this subroutine
FORM FILL_VARIANT .
Filling the Variant structure
W_VARIANT-REPORT = SY-REPID.
W_VARIANT-USERNAME = SY-UNAME.
ENDFORM. " FILL_VARIANT
reward point if helpful.
thanks
mrutyun^ -
What are the benefits of Apple TV as compared to streaming video via a MacBook Pro?
What are the benefits of Apple TV as compared to streaming video via a MacBook Pro?
Sorry, I don't quite understand your question. Amongst other things that's exactly what the Apple TV does, is streaming video from a computer.
-
What are the major issues to consider in code review? Or performance analys
What are the major issues to consider in code review? Or performance analysis?
I would not recommend you to try to optimize performance by checking the coding.
There is the code inspector which can do all which makes sense automatically.
The above mentioned points are not the real issues.
Instead of code review you should execute test cases and measure the exection time.
1. With STAD if you want to get good time measurement
2. With SE30 and ST05, if you want to have data for further anaylsis.
Check total time (SE30), check whether DB part is large, then go to SQL trace. Do the check mentioned here
/people/siegfried.boes/blog/2007/09/05/the-sql-trace-st05-150-quick-and-easy
to find the SQL bottlenecks.
The major point about SQL problems is index support, if there is no proper index support then the performance will be poor. Be aware, that problems are only visible, if you tables are filled.
In a test system where you have very little data, you will never encounter performance problems.
Check also the Top10 of the SQ30 hit list.
Be aware that a proper performance analysis is not a 5 minutes job.
Siegfried -
What are the best coding technics which will avoid performance problems
Hi Experts
What are the best coding technics which are avoiding memory problems and performance problems
Some times one of few reports are taking too much time to executing while handling large data.
1.What are the best way to declare a internal table to avoid performance problems.
2.what is the best way to process data.
3.what is the best way to clear memory.
Can you guys help me give some good suggestions for writing better programs to avoid performance problems.
Thanks
SailuHi,
Check this link..[Please Read before Posting in the Performance and Tuning Forum Updated |Please Read before Posting in the Performance and Tuning Forum;
Which will be the first thread in the Performance and Tuning Forum.
Search the SCN first. -
What are the steps needs to be perform to define a data model
What are the steps needs to be perform to define a data model
a. Information Gathering
b. Hardware & Software
c. Structure the Information MDM
d. Transfer into a Physical Model BW data model
e. Explore use of existing model Business ContentHi Siva,
Very first activity is Proof of concept (POC), here we have to show How BW works for clients Reporting requirement during POC we as BW consultants need to creat some sample BW back end objects and also some reports based on business requirement. This is very crucial stage as Client Judge wethere BW would meet his demands. If every thing is fine then next step is Bidding.
After Bidding the contract then actual Project intiates. from here we follow ASAP methodology.
<u><b>
Project Preparation</b></u>
Here Senior Consultant would go to Client place for Business Process Transistion and to know in what way the Architectue should be set up so here Basis People will come into picture.
<u><b>Blue Print</b></u>
Transistion could be understood by BRD (Business Requirement Documents) BRD states what is exact requirement and it is given by End users.
By seeeing thr BRD's we as BW consultants must prepare APPlication Design Documents . The Application Design Documents states all the Technical aspects that needs to be performed as BW backend and also as well as Frontend.
<u><b>Realization Phase</b></u>
Here as BW consultants we must start confuguring as mentioned in ADD's by taking care of all performance aspects, once all the configuration are done we do Unit testing. unit testing is an activity where we check all the design process wether it running correct or not. After unit testing we move the design objects to Qulaity for Integration Testing.
<u><b>Testing</b></u>
Here end user will check all the objects, reports on end to end basis. after integration testing is done then UAT ( User acceptance Testing) would come into picture where user check each process and sign off.
<u><b>Go live</b></u>
Here all the object will be moved to Production where end users and power users can start working on the system. intially for some days Development team would be taking care of all support activites there after it will be transitoned to support team.
Hope It helps you.
Assign Points if it usefull
Regards
Sujan -
What are the main things to do when optimizing the performance of Java App
what are the main things to do when optimizing the performance of Java App
what are the main things to do when optimizing the performance of Java App
Maybe you are looking for
-
How do I access my Airdisk from the Internet?
Hello, I have been scouring the web for the answer to this, and have found very little, why doesn't Apple help out more with this. They say it is possible, just not how to do it. My AE is bridged to my ISPs Netgear router which supports dyndns. I've
-
Is it not possible to upgrade Final Cut Studio as a whole? Do you have to now buy the software separately?
-
Error 1305 while installing Crystal Reports 2008, JavaSDK
While installing Crystal Reports from the original media on a new Lenovo Thinkpad running Windows XP Pro SP3 I get the following error while installing: Error 1305: Error reading from File: c:\program files\Business Objects\javasdk\jre\audio\soundban
-
Error in Java based iView when trying to use J2EE bean
I am trying to create a iView based on Java Portal app. [Java portal app has dynPage based Portal App Object] I created a PAR and uploaded to Portal. I created iView and worked it fine in (preview). [iView created using "Content Administration -> Por
-
IPhoto '08- can't see photo files for back up
I had upgraded to iLife '08. I usually back up current photo files to an external drive by going in iPhoto folder in users, select the new photos by folder and drag into my back up drive. Now I click on the iPhoto '08 icon and it acts like an applica