Monitor TPS value for Ace Module
Hi Everyone,
I recently installed the license ACE-SSL-05K-K9 on ACE10 with multicontext solution.
The license provides 5000 Maximum number of SSL transactions per second (TPS).
The customer would like to track this to find out the correct size and in the case of services https upgrade licenses.
Can I do it so through particular output or it's necessary monitoring with snmp service? In the second case, can you tell me the oid string to use?
In case the module should receive a higher number of connections to that provided by the license, what's the issue for new https connections?
Regards
Dino
Hello Dino!
You can go into the Admin-Context and use sh resource usage all. Watch out for the ssl-connections rate. But I dont know the OID for this. But you can look into Cisco's MIB browser.
Cheers,
Marko
Similar Messages
-
[UDP fast age support for ACE Module]
Hello,
I'm testing 2 ACE modules running A3.0.0 for DNS load balancing (UDP). We're testing this by using a DNS query generator that (always) seems to use the same UDP source port when originating these queries. At the moment, the ACE module is hardly doing any load-balancing.
It looks to me like, that because of this, the ACE believes it's the same session (connection) and doesn't really load-balance, so I started looking for a solution and found the fast-age udp feature. But, it seems this is not supported on my ACE modules. Can any one offer another solution and/or look at my config and see if there is another way to achieve load balancing in a testing environment when using a tool like the one I described?
(I put it that way because i believe in real life since queries come from different IP addresses and randomized udp ports, the ACE module will be just fine).
Thanks in advance!
c.Hi Carlos,
Correct. The 3.0(0) is really misleading. You need to start with the "A" - so you really have 1.6.3a installed.
The "show version" for V2 is slightly better -
system: Version A2(1.2) [build 3.0(0)A2(1.2)
Cathy -
Inventory collection fails for ACE module (RME 4.3.1)
I am trying to collect the inventory and ultimately the configurations for my ace modules. When i try to do an inventory collection I get the error
Device sensed, but collection failed
Anybody have any ideas?
ChrisPost your IC_Server.log.
Please support CSC Helps Haiti
https://supportforums.cisco.com/docs/DOC-8895
https://supportforums.cisco.com -
Does ACS for Windows 3.3 support AAA for the ACE module?
I don't think that is correct. I am still
having issues with ACE and ACS. See below:
ACE version Software
loader: Version 0.95
system: Version A1(7b) [build 3.0(0)A1(7b)
Cisco ACS version 4.0.1
I am trying to authenticate admin users with AAA authentication for ACE management.
This is what I've done:
ACE-lab/Admin(config)# tacacs-server host 192.168.3.10 key 123456 port 49
warning: numeric key will not be encrypted
ACE-lab/Admin(config)# aaa group server tacacs+ cciesec
ACE-lab/Admin(config-tacacs+)# server ?
TACACS+ server name
ACE-lab/Admin(config-tacacs+)# server 192.168.3.10
can not find the TACACS+ server
specified TACACS+ server not found, please configure it using tacacs-server host ... and then retry
ACE-lab/Admin(config-tacacs+)# -
I've been searching but i can't find the visio stencil for the ACE-10 or ACE-20 module.
Can anyone point me in the right direction or is this stencil yet to be made ?I don't think they are available yet. I needed them a few months ago, couldn't find them, and ended up making my own.
In case you need it, here's a link to the stencils Cisco provides.
http://www.cisco.com/en/US/products/prod_visio_icon_list.html -
Incorrect CRC16 value for ACE file
Hi,
I am trying to implement a Java app that will read ACE files. These are files that are compressed using an app such as WinAce.
I have looked at the ACE file structure documentation that says that the first 2 bytes holds the CRC 16-bit for the file header. The header is usually 54-bytes long. The first 2 bytes is the CRC-16. The next two bytes holds the length of important ACE file info. The next single byte up until the end of the header is the section that is read and the CRC is calculated from it. So, for example, if the total header is 55 bytes, the CRC is calculated from bytes 4 to the end 54 (as first byte is 0).
0 2 4 5 ... 54
|CRC16 | Length | 00 | IMPORTANT ACE FILE INFO (BYTES 4 to 54 USED IN CRC16) |
-------------------------------------------------------------------------------------------However, the CRC calculated by WinAce is "de 06" in hexadecimal and when I calculated the checksum I got "a2 94". I dont know why my checksum is incorrect.
Here is my entire class that calculates the checksum:
package org.ace.internals;
public class CRCDemo
// calculating 16-bit CRC
* generator polynomial
private static final int poly = 0x1021; /* x16 + x12 + x5 + 1 generator polynomial */
/* 0x8408 used in European X.25 */
* scrambler lookup table for fast computation.
private static int[] crcTable = new int[256];
static
// initialise scrambler table
for ( int i = 0; i < 256; i++ )
int fcs = 0;
int d = i << 8;
for ( int k = 0; k < 8; k++ )
if ( ((fcs ^ d) & 0x8000) != 0 )
fcs = ( fcs << 1 ) ^ poly;
else
fcs = ( fcs << 1 );
d <<= 1;
fcs &= 0xffff;
crcTable[i] = fcs;
* Calc CRC with cmp method.
* @param b byte array to compute CRC on
* @return 16-bit CRC, signed
public static short cmpCRC( byte[] b )
// loop, calculating CRC for each byte of the string
int work = 0xffff;
for ( int i = 0; i < b.length; i++ )
work = ( crcTable[( (work >> 8)) & 0xff] ^ ( work << 8 ) ^ ( b[i] & 0xff ) ) & 0xffff;
return(short)work;
public static void main(String[] args)
//The relevant ACE header section that is used to calculate the CRC16
byte[] bytes = new byte[]
(byte)0x00, (byte)0x00, (byte)0x90, (byte)0x2a, (byte)0x2a, (byte)0x41,
(byte)0x43, (byte)0x45, (byte)0x2a, (byte)0x2a, (byte)0x14, (byte)0x14,
(byte)0x02, (byte)0x00, (byte)0xac, (byte)0x5a, (byte)0xe1, (byte)0x32,
(byte)0x2b, (byte)0x0d, (byte)0x3e, (byte)0x23, (byte)0x00, (byte)0x00,
(byte)0x00, (byte)0x00, (byte)0x16, (byte)0x2a, (byte)0x55, (byte)0x4e,
(byte)0x52, (byte)0x45, (byte)0x47, (byte)0x49, (byte)0x53, (byte)0x54,
(byte)0x45, (byte)0x52, (byte)0x45, (byte)0x44, (byte)0x20, (byte)0x56,
(byte)0x45, (byte)0x52, (byte)0x53, (byte)0x49, (byte)0x4f, (byte)0x4e,
(byte)0x2a
CRCDemo crcdemo = new CRCDemo();
short crc16bit = crcdemo.cmpCRC(bytes);
System.out.println(Integer.toHexString(crc16bit));
}Any hints and code is much appreciated. Thanks.
RizwanHi,
not sure if WinACE uses the same CRC algorithm and CRC seeds as WinZip.
But here's a utility class I've been using a long while, which generates the exact CRC values as Winzip.
regards,
Owen
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.InputStream;
public class CRC32
protected static long []CRCTable;
/* Initial Polynomial values may be choosen at random, in a 32-bit CRC algorithm
* anything from 0 to 4294967295 ( ( 2 ^ 32 ) - 1 ).
* However EDB88320 is the exact value used by PKZIP and ARJ, so we generate
* identical checksums to them. A nice touch to make testing easier.
protected final static long CRC32_POLYNOMIAL = 0xEDB88320L;
protected final static long INITIAL_CRC32 = 0xFFFFFFFFL;
static
CRCTable = new long[256];
int i, j;
long crc;
for (i = 0; i <= 255; i++)
crc = i;
for (j = 8; j > 0; j--)
if ( ( crc & 1 ) != 0 )
crc = ( crc >> 1 ) ^ CRC32_POLYNOMIAL;
else
crc >>= 1;
CRCTable[ i ] = crc;
public static long getInitialCRC ( )
return ( INITIAL_CRC32 );
public static long calcFileCRC32 ( String filename ) throws Exception
FileInputStream inputStream = new FileInputStream ( filename );
CRC32InputStream checksumInputStream = new CRC32InputStream ( inputStream );
long crc32 = calcFileCRC32 ( checksumInputStream ); // inputStream );
// long crc32 = calcFileCRC32 ( inputStream );
long checksum = checksumInputStream.getChecksum();
System.out.println ("CRC32InputStream : " + Long.toHexString ( checksum ) );
if ( inputStream != null )
inputStream.close();
return ( crc32 );
public static long calcFileCRC32 ( InputStream inStream ) throws Exception
long lCrc = INITIAL_CRC32;
int iCount = 0;
byte []buffer = new byte [ 4096 ];
BufferedInputStream myFastReader = new BufferedInputStream ( inStream );
while ( ( iCount = myFastReader.read ( buffer ) ) > 0 )
// lCrc = calculateBufferCRC (buffer, iCount, lCrc);
lCrc = calculateBufferCRC (buffer, 0, iCount, lCrc);
lCrc ^= INITIAL_CRC32;
return ( lCrc );
public static long calcCRC32 ( String aStr )
long lCrc = 0;
if ( aStr != null )
byte [] strBytes = aStr.getBytes(); // Warning : encoding scheme dependant
if ( strBytes != null )
lCrc = calculateBufferCRC ( strBytes, strBytes.length, 0xFFFFFFFFL );
return ( lCrc );
public static long updateCRC ( byte b, long lCrc )
long temp1 = ( lCrc >> 8 ) & 0x00FFFFFFl;
long temp2 = CRCTable [ ( (int) lCrc ^ b ) & 0xFF ];
return ( temp1 ^ temp2 );
public static long calculateBufferCRC ( byte []pcBuffer, int iCount, long lCrc )
if ( iCount <= 0 )
return ( lCrc );
int pcIndex = 0;
long temp1, temp2;
while (iCount-- != 0)
temp1 = ( lCrc >> 8 ) & 0x00FFFFFFl;
temp2 = CRCTable [ ( (int) lCrc ^ pcBuffer[pcIndex++] ) & 0xFF ];
lCrc = temp1 ^ temp2;
return ( lCrc );
public static long calculateBufferCRC ( byte []pcBuffer, int offset, int iCount, long lCrc )
if ( iCount <= 0 )
return ( lCrc );
int pcIndex = offset;
long temp1, temp2;
while (iCount-- != 0)
temp1 = ( lCrc >> 8 ) & 0x00FFFFFFl;
temp2 = CRCTable [ ( (int) lCrc ^ pcBuffer[pcIndex++] ) & 0xFF ];
lCrc = temp1 ^ temp2;
return ( lCrc );
public static void main ( String args[] )
long crc;
if ( args.length > 0 )
for ( int i=0; i<args.length; i++ )
try
// crc = calcCRC32 ( args[i] );
crc = calcFileCRC32 ( args[i] );
System.out.println ( i + " : " + crc + " ( " + Long.toHexString(crc) + " ) : " + args[i] );
catch ( Exception e )
e.printStackTrace();
} -
ACE module support for IPv6 ?
what is the latest on IPv6 support for ACE module? I saw something saying 2HCY10, but that's where we are now. Any documentation pointers to current compatability and or roadmap are greatly appreciated.
thanks
Bob O.As mklemovitch described in the following thread, IPv6 will be
supported on ACE30 module but not in the initial release.
There is no plan for ACE20 module.
https://supportforums.cisco.com/message/3192517#3192517
I'm not sure but maybe around Q3 CY11 or later.
I cannot see the documentation regarding this feature on CCO.
I would suggest to contact your account team for details.
Regards,
Yuji -
How to Virtual IP configuration in ACE module?
Hi,
I am in the process of configuring load balancing on ACE module but struggling to configure virtual IP address for ACE module.
I'm working on ACE30 module and using software version A5 (1.2). ACE module is in slot of Catalyst 6504 switch.
Can anybody please post the steps/commands to perform this activity? An early response would be appreciated.
Regards,
Rachit.Hi Rachit,
Here is a basic configuration example:
access-list Allow_Access line 10 extended permit ip any any
rserver host test
ip address 10.198.16.98
inservice
rserver host test2
ip address 10.198.16.93
inservice
serverfarm host test
rserver test 80
inservice
rserver test2 80
inservice
sticky http-cookie test group2
cookie insert
serverfarm test
class-map match-all VIP
2 match virtual-address 10.198.16.122 tcp eq www
policy-map type loadbalance first-match test
class class-default
sticky-serverfarm group1
policy-map multi-match clients
class VIP
loadbalance vip inservice
loadbalance policy test
loadbalance vip icmp-reply active
nat dynamic 1 vlan 112
interface vlan 112
ip address 10.198.16.91 255.255.255.192
access-group input Allow_Access
nat-pool 1 10.198.16.122 10.198.16.122 netmask 255.255.255.192 pat
service-policy input NSS_MGMT
service-policy input clients
no shutdown
ip route 0.0.0.0 0.0.0.0 10.198.16.65
Here is the configuration guide:
http://tools.cisco.com/squish/101AD
Cesar R -
Monitoring the Cisco ACE module with SNMP
We use 2 redundant Cisco ACE loadbalancer in our datacenter
The models are ACE20-MOD-K9 with software A2(2.0)
Does anybod know how to monitor the environment (cpu, memory) of such a module with snmp?
We were not able to find an applicable MIB for that module.
The CISCO-PROCESS-MIB.oid (ftp://ftp.cisco.com/pub/mibs/oid/CISCO-PROCESS-MIB.oid) seems not to reflect the correct oid's.
What are the correct oid's for cpu and memory?
Where can I find a detailed documentation for snmp-monitoring the cisco ace module?
thanksHi Patrik,
to monitor the ACE I use these two MIB's:
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SLB-MIB.my
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-ENHANCED-SLB-MIB.my
Example for CPU:
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Normale Tabelle";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
cpmCPUTotalEntry 1.3.6.1.4.1.9.9.109.1.1.1.1
The resource usage and other interesting things you will find with a MIB browser.
Achim -
Function module expression for dynamic value for Cost center in BRF
Hello Experts,
We are in SRM 7.0 and our business object is shopping cart using BRF.
Right now we have Cost Center Approver and its evaluation id ()zev_sc_**_*) has expression zc_sc_*_** that checks whether overallvalue >= 5000. It initiates cost center approver only if value is greater than or equal to 5000. But this is static expression. We want it in a dynamic way so that we don't have to modify this value frequently. Therefore we have set approach to use an expression of Function Module BAdI as expression. We have a new z table which contains value field zval. Now I want to know how or what should be the process so that this FM knows the corresponding value from a z table that user might select in the SC.How it should be linked to this. I am using /SAPSRM/WF_BRF_0EXP000 function module. Please advise where should the code be written ? Any method ? And what should be the exporting and importing parameters for this ?
Right now I can see EV_VALUE, EV_TYPE, EV_CURRENCY etc as exporting paramters. Looking for your suggestions experts.
Thank you.
Best regards.Dear abhijeet,
just follow the steps.
i) I believe you have created the event as Zev_*** with implememt Class 0EVENT.
ii) copy the std fm /SAPSRM/WF_BRF_0EXP000 to z custom fm
iii) since you want to have an expression as function module procurement type create expression with
expression type 0CF001
result type B ( boolean)
Buffering as event-controlled buffering
and very important procurement type as function module.
iv) immediatly you may find written as AccessFM where pass your custom z function module.
v) finally link this expression to your event.
In the custom function module the exporting parameter EV_VALUE is solely responsible for identifieng the approval based upon the approval criteria. If the field EV_VALUE = 'X' this notify that the approval is required for current process level, otherwise if it is initial then it will skip the current level and continue with the next level.
whatever your coding should be written in FM.
just look into below code
DATA LO_WF_BRF_EVENT TYPE REF TO /SAPSRM/CL_WF_BRF_EVENT.
DATA LO_CONTEXT_PROVIDER TYPE REF TO /SAPSRM/IF_WF_CONTEXT_PROVIDER.
DATA: LV_HEADER LIKE BBP_PDS_SC_HEADER_D.
DATA: LT_ITEM TYPE STANDARD TABLE OF BBP_PDS_SC_ITEM_D.
LO_WF_BRF_EVENT ?= IO_EVENT.
LO_CONTEXT_PROVIDER = LO_WF_BRF_EVENT->GET_CONTEXT_PROVIDER( ).
CALL METHOD LO_CONTEXT_PROVIDER->GET_DOCUMENT
IMPORTING
EV_DOCUMENT_GUID = LV_DOCUMENT_GUID
EV_DOCUMENT_TYPE = LV_DOCUMENT_TYPE.
pass this guid in the below function module in order to get the SC details.
GET SC DETAILS
CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
EXPORTING
I_GUID = LV_DOCUMENT_GUID
IMPORTING
E_HEADER = LV_HEADER
TABLES
E_ITEM = LT_ITEM
After that loop the internal table LT__ITEM and you decide based upon your approval criteria for each line item level wheather the gross price of line item is exceed 5000k or not.
you should decide the value for field EV_VALUE within the loop so that each line item will be verified for approval.
Pls contribute if this helpfull.
regards
sahil purushan -
Function Module to extract char values for a matl variant
Experts,
Looking for a Function Module with which I can extract the Char value for a specific characteristic on my material variant. So, the class type is 300 & I would like to pass this material (variant) as an input in order to retrieve the value for the specific characteristic (which will be unique to this variant)
Any one, an idea?
thanksOk, I found what I needed. For everyone's benefit, herez what I found:
1. every application/object in the SAP side which uses the configuration has a unique Internal Object #. For material variants, Sales Documents, Prodn Ord headers & components, so on so forth.
2. In the system the fields CUOBF, CUOBJ carry these Internal Obj #'s. For the sake of getting the material variant char & values I found the func module VC_I_GET_CONFIGURATION, where the input could be the Int Obj # from the MARA or the one from VBAP, based on the need.
Thanks -
Function module to change the value for pricing condition type
Hello experts,
I want to change the value for pricing condition type for an item in the transaction CRMD_ORDER.
I used many function modules but none are working.
Please kindly suggest a function module that will change the value for a condition type .
I have used the following function module but its not working, please correct the coding if anything needs to be changed or added. Please help me .
Thank you.
CLEAR PRCD_COND.
SELECT SINGLE * FROM PRCD_COND WHERE KPOSN = WA_ORDERADM_I-GUID AND
KSCHL = COND_TY.
IF SY-SUBRC = 0.
* MOVE-CORRESPONDING PRCD_COND TO L_COND_CHG.
* CLEAR L_COND_CHG-KBETR.
L_COND_CHG-STUNR = PRCD_COND-STUNR.
L_COND_CHG-KBETR = COND_PRC.
* L_COND_CHG-KSCHL = COND_TY.
INSERT L_COND_CHG INTO TABLE T_COND_CHG.
L_HEAD_GUID = CRMD_ORDERADM_H-GUID.
L_ITEM_GUID = WA_ORDERADM_I-GUID.
INSERT L_HEAD_GUID INTO TABLE HEAD_GUID.
INSERT L_ITEM_GUID INTO TABLE ITEM_GUID.
CALL FUNCTION 'CRM_ORDER_READ'
EXPORTING
IT_HEADER_GUID = HEAD_GUID
IT_ITEM_GUID = ITEM_GUID
IMPORTING
ET_ORDERADM_H = LT_ORDERADM_H
ET_ORDERADM_I = LT_ORDERADM_I
ET_PRIDOC = IT_PRIDOC_RD
ET_DOC_FLOW = T_DOC_FLOW
* CHANGING
* CV_LOG_HANDLE =
* EXCEPTIONS
* DOCUMENT_NOT_FOUND = 1
* ERROR_OCCURRED = 2
* DOCUMENT_LOCKED = 3
* NO_CHANGE_AUTHORITY = 4
* NO_DISPLAY_AUTHORITY = 5
* NO_CHANGE_ALLOWED = 6
* OTHERS = 7
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
MOVE-CORRESPONDING LS_PRIDOC_RD TO L_PRI_COND.
INSERT L_PRI_COND INTO TABLE PRI_COND.
LOOP AT IT_PRIDOC_RD INTO LS_PRIDOC_RD.
MOVE-CORRESPONDING LS_PRIDOC_RD TO L_PRIDOC_CHG.
L_PRIDOC_CHG-PRIC_COND = PRI_COND.
L_PRIDOC_CHG-REF_GUID = LS_PRIDOC_RD-GUID.
L_PRIDOC_CHG-COND_CHANGE = T_COND_CHG.
INSERT L_PRIDOC_CHG INTO TABLE PRIDOC_CHG.
ENDLOOP.
LOOP AT LT_ORDERADM_H INTO LS_ORDERADM_H .
MOVE-CORRESPONDING LS_ORDERADM_H TO L_HEADER.
INSERT L_HEADER INTO TABLE HEADER.
ENDLOOP.
LOOP AT LT_ORDERADM_I INTO LS_ORDERADM_I.
MOVE-CORRESPONDING LS_ORDERADM_I TO L_ITEM.
INSERT L_ITEM INTO TABLE ITEM.
ENDLOOP.
L_FIELD-FIELDNAME = 'STUNR'.
INSERT L_FIELD INTO TABLE FIELD.
L_FIELD-FIELDNAME = 'KBETR'.
L_FIELD-CHANGEABLE = 'X'.
INSERT L_FIELD INTO TABLE FIELD.
L_INPUT-FIELD_NAMES = FIELD.
L_INPUT-REF_KIND = 'E'.
L_INPUT-REF_GUID = LS_PRIDOC_RD-GUID.
L_INPUT-OBJECTNAME = 'PRIDOC'.
INSERT L_INPUT INTO TABLE INPUT.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
IT_PRIDOC = PRIDOC_CHG
IMPORTING
ET_EXCEPTION = EXCEPT
CHANGING
CT_INPUT_FIELDS = INPUT.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH EXCEPT.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
IT_OBJECTS_TO_SAVE = HEAD_GUID
* IV_UPDATE_TASK_LOCAL = FALSE
* IV_SAVE_FRAME_LOG = FALSE
* IV_NO_BDOC_SEND = FALSE
* IT_ACTIVE_SWITCH =
IMPORTING
ET_SAVED_OBJECTS = SAVED
ET_EXCEPTION = EXCEPT
ET_OBJECTS_NOT_SAVED = UNSAVED
* CHANGING
* CV_LOG_HANDLE =
* EXCEPTIONS
* DOCUMENT_NOT_SAVED = 1
* OTHERS = 2
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
COMMIT WORK AND WAIT.Hi,,
To be able to call a function module in an update work process, you must flag it in the Function Builder. When you create the function module, set the Process Type attribute to Update with immediate start
Alternatively u can use this function module.
CRM_STATUS_DATA_SAVE_DB
BAPI_CUSTOMERCRM_CHANGE (If u wish to use a bapi for this).
Also , Let me know what error you got when implementing other function module.Does the function module didnt return any error but still the value is not changed for pricing condition type? -
I want an example for event Process on Value-request in Module Pool
Hi,
I need to populate f4 values for a field in module pool program under POV event.
Can anyone send me the sample code.
Helpful answers will be rewarded .
Thanks and Regards
AdityaHi
For F4 Values on Screen:
PROCESS ON VALUE_REQUEST
using module call starting with FIELD i.e FIELD field MODULE module
There are number of function modules that can be used for the purpose, but these
can fullfill the task easily or combination of them.
DYNP_VALUE_READ
F4IF_FIELD_VALUE_REQUEST
F4IF_INT_TABLE_VALUE_REQUEST
POPUP_WITH_TABLE_DISPLAY
DYNP_VALUE_READ
This function module is used to read values in the screen fields. Use of this
FM causes forced transfer of data from screen fields to ABAP fields.
There are 3 exporting parameters
DYNAME = program name = SY-CPROG
DYNUMB = Screen number = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
and one importing TABLE parameter
DYNPFIELDS = Table of TYPE DYNPREAD
The DYNPFIELDS parameter is used to pass internal table of type DYNPREAD
to this FM and the values read from the screen will be stored in this table.This
table consists of two fields:
FIELDNAME : Used to pass the name of screen field for which the value is to
be read.
FIELDVALUE : Used to read the value of the field in the screen.
e.g.
DATA: SCREEN_VALUES TYPE TABLE OF DYNPREAD ,
SCREEN_VALUE LIKE LINE OF SCREEN_VALUES.
SCREEN_VALUE-FIELDNAME = 'KUNNR' . * Field to be read
APPEND SCREEN_VALUE TO SCREEN_VALUES. * Fill the table
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = SCREEN_VALUES.
READ TABLE SCREEN_VALUES INDEX 1 INTO SCREEN_VALUE.Now the screen value for field KUNNR is in the SCREEN_VALUE-FIELDVALUE and can be used for further processing like using it to fill the internal table to be used as parameter in F4IF_INT_TABLE_VALUE_REQUEST ETC.
F4IF_FIELD_VALUE_REQUEST
This FM is used to display value help or input from ABAP dictionary.We have to pass the name of the structure or table(TABNAME) along with the field name(FIELDNAME) . The selection can be returned to the specified screen field if three
parameters DYNPNR,DYNPPROG,DYNPROFIELD are also specified or to a table if RETRN_TAB is specified.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = table/structure
FIELDNAME = 'field name'
DYNPPROG = SY-CPROG
DYNPNR = SY-DYNR
DYNPROFIELD = 'screen field'
IMPORTING
RETURN_TAB = table of type DYNPREAD
F4IF_INT_TABLE_VALUE_REQUEST
This FM is used to dsiplay values stored in an internal table as input
help.This FM is used to program our own custom help if no such input help
exists in ABAP dictionary for a particular field. The parameter VALUE_TAB is used to pass the internal table containing input values.The parameter RETFIELD
is used to specify the internal table field whose value will be returned to the screen field or RETURN_TAB.
If DYNPNR,DYNPPROG and DYNPROFIELD are specified than the user selection is passed to the screen field specified in the DYNPROFIELD. If RETURN_TAB is specified the selectionis returned in a table.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = field from int table whose value will be returned
DYNPPROG = SY-CPROG
DYNPNR = SY-DYNNR
DYNPROFIELD = 'screen field'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = internal table whose values will be shown.
RETURN_TAB = internal table of type DDSHRETVAL
EXCEPTIONS
parameter_error = 1
no_values_found = 2
others = 3.
POPUP_WITH_TABLE_DISPLAY
This FM is used to display the contents of an internal table in a popup window.The user can select a row and the index of that is returned in the CHOISE
parameter.The VALUETAB is used to pass the internal table.
A suitable title can be set using TITLETEXT parameter. The starting and end position of the popup can be specified by the parameters STARTPOS_COL / ROW and ENDPOS_ROW / COL .
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
ENDPOS_COL =
ENDPOS_ROW =
STARTPOS_COL =
STARTPOS_ROW =
TITLETEXT = 'title text'
IMPORTING
CHOISE =
TABLES
VALUETAB =
EXCEPTIONS
BREAK_OFF = 1
OTHERS = 2.
e.g.
DATA: w_choice TYPE SY-TABIX.
DATA: BEGIN OF i_values OCCURS 0 WITH HEADER LINE,
values TYPE I,
END OF i_values.
PARAMETRS : id TYPE I.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR id
i_values-values = '0001'.
APPEND i_values.
i_values-values = '0002'.
APPEND i_values.
i_values-values = '0003'.
APPEND i_values.
i_values-values = '0004'.
APPEND i_values.
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
ENDPOS_COL = 40
ENDPOS_ROW = 12
STARTPOS_COL = 20
STARTPOS_ROW = 5
TITLETEXT = 'Select an ID'
IMPORTING
CHOISE = w_choice
TABLES
VALUETAB = i_values
EXCEPTIONS
BREAK_OFF = 1
OTHERS = 2.
CHECK w_choice > 0.
READ TABLE i_values INDEX w_choice....now we can process the selection as it is contained
...in the structure i_values.
Other FM that may be used to provide input help is HELP_START .
Reward points if useful
Regards
Anji -
Default values in tables for function module
Hi,
We've created a function module and it is their requirement to have a default value for the tables in the FM? How do we do this? Cause if it is just an import parameter there is a column for default values, but for tables there is none. How do we code this?
Thanks.Hi,
In the start of the function module you can check the table and set your default values.
FUNCTION ...
"Check whether the table is initial
"Do not override the value passed by the user
IF itab[] IS INITIAL.
itab-field = 'DEFAULT'. "Set your default value
APPEND itab.
ENDIF.
- - - Your functionality
Regards
Wenceslaus. -
Module pool program - populating values for columns in Table control
Hi all,
In my module pool program Table control i am having 10 columns fields.
in one of the column field i have used 'PROCESS ON VALUE-REQUEST' to get the material no.
in that F4 search help list is having releated information of the material like material group, company code, description etc.
user while searching for material they will use F4 search help and in that list they will select the material .
From the list I need releated information of the materials like material group, company code, description etc
to be populated in other columns while selecting the material .( User is not ready to enter all the values for the fileds)
I appended the releated values for the material in the Table control Internal table in the Process on value-request Module.
(after selecting material by the user from F4 search help)
even then I am not getting the data in the screen.
kindly help me how to proceed to get the data in other columns.
Thanks in advance,
sharmaHi Himanshu Verma ,
Thanks for fast reply.
but i tried with field names available in F4 Internal table.
even then I am not getting.
T_DYNPFLD_MAPPING-FLDNAME = ' MTART.
APPEND T_DYNPFLD_MAPPING TO ITAB_DYNPFLD_MAPPING.
T_DYNPFLD_MAPPING-FLDNAME = 'MBRSH'.
APPEND T_DYNPFLD_MAPPING TO ITAB_DYNPFLD_MAPPING.
SELECT
MATNR
MTART
MBRSH
MATKL
BISMT
MEINS
BSTME
FROM MARA
INTO TABLE INT_F4
up to 5000 rows
CLEAR INT_F4.
****function module to get pop-up window of f4.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'MATNR'
DYNPPROG = W_PROGNAME
DYNPNR = W_SCR_NUM
DYNPROFIELD = 'V_TAB-MATNR'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = INT_F4
RETURN_TAB = RETURN_VALUES
DYNPFLD_MAPPING = ITAB_DYNPFLD_MAPPING
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE .
V_TAB-matnr = RETURN_VALUES-FIELDVAL.
endif.
I have used the above code. I am not getting the field values available in ITAB_DYNPFLD_MAPPING.
kindly help me how to get the exact row for the F4 table.
Thanks in advance.
sharma
Maybe you are looking for
-
Problem sending email from abap to Outlook
We have a program that sends an email from ABAP to the SAP Inbox using FM SO_NEW_DOCUMENT_SEND_API1, the email arrives at the SAP Inbox and then it's redirected to Outlook. This works fine in 4.6C We just upgraded to ECC 6, the same process does send
-
ORA-01017: invalid username/password; logon denied on Weblogic 9.0 cluster
I am experiencing the following exception in Weblogic 9.0 server cluster environment. The same code works fine in non-cluster environment. The problem happens every now and then and would go away temporarily after recycling the domains. The Oracle da
-
H.P. non existent customer service.
What an utter shambles Hewlett Packard is. Take your money and thats it. I cannot even find my query on this site and if it is there donot expect an answer any way. Fancy having to go on a site like this to get any service at all. This from a multimi
-
A new corecentre is released 1.7.3.0
Linked Edit: Btw : It's an update for CK8-04 crush chipset (nForce 4) Confused about the crush naming : Nvidia CK8-04 = nForce4 , Nforce4 Ultra , Nforce4 Pro , Nforce4 SLI Nvidia CK8S = nForce3 250 Nvidia CK8S2 = nFforce3 250GB Nvidia CK8 = nForce3 1
-
A64 Overclocking info from a bios engineer.
Im sure many of you know who Oskar Wu is. For those who dont, he is a bios engineer that recently left Abit and went to work at DFI. As far as I know he is working on their 250gb board. Oskar has posted some information regarding overclocking li