RFC Lookup - BAPI-TABLE Parameters problem
Hello All,
I had a scenario where i need to export parameters and am supposed to get import parameters from BAPI between source and target structures.
like -
source --> BAPI execution = result --> target
We had succeeded in getting those but the only problem is with TABLE parameters in that BAPI.
How can we achieve it.
Faster reply would be appreciated.
Thanks & regards
Reddy
Hi VJ,
Its not a simple source-target mapping .
For Ex :
Source-Bapi-Idoc
Source will send some parameters to BAPI and bapi will execute it and respond with values in table parameter of the bapi and result would be assigned to idoc-field.
For this i am using RFC Look up with sample code as :
String rfcxml ="<ns0:Z_BAPI xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\">" +
" <A>" + A + "</A>" + --- Export parameters
" <B>" + B + "</B>" + --- Export parameters
//" <TABLE><FIELD1>" + FIELD2 + "</FIELD1></TABLE>" +
//" <TABLE><FIELD2>" + FIELD2 + "</FIELD2></TABLE>" +
//" <TABLE><FIELD3>" + KDMAT+ "</FIELD3></TABLE>" +
// "<FIELD1>" + FIELD1 + "</FIELD1>" +
"</ns0:Z_BAPI> " ;
Passing A & B as export parameters and getting TABLE-FIELD1&2&3 as response.
I hope some problem in the syntax.
Regards,
HP
Similar Messages
-
How BAPI Tables parameters are passed by reference
Hi Gurus,
I have a genuine doubt regarding BAPI parameters. I would like to point out the genreal rules of bapi like,
1. BAPI parameters should be passed by value. (Because they are rfc fm's. So both systems will be in different servers. This is the normal scenario.)
2. But the tables parameters in BAPI can't be passed by value. Instead they are passed by reference.
3. I know they use some kind of delta mechanism to transfer tables parameters to remote servers.
So gurus I would like to know what exactly happens when a tables parameter is passed. And also I didn't understand the delta mechanism. Kindly guide me.
Thanks in advance,
Jerry JeromeYou'll see in [SAP Library - RFC - Parameter Handling in Remote Calls|http://help.sap.com/saphelp_nw04s/helpdata/en/22/042551488911d189490000e829fbbd/frameset.htm] that tables are not passed by reference when you use RFC. It also explains the delta.
When you make a remote function call, the system handles parameter transfer differently than it does with local calls.
TABLES parameters
The actual table is transferred, but not the table header. If a table parameter is not specified, an empty table is used in the called function.
The RFC uses a delta managing mechanism to minimize network load during parameter and result passing. Internal ABAP tables can be used as parameters for function module calls. When a function module is called locally, a parameter tables is transferred u201Cby reference". This means that you do not have to create a new local copy. RFC does not support transfer u201Cby referenceu201D. Therefore, the entire table must be transferred back and forth between the RFC client and the RFC server. When the RFC server receives the table entries, it creates a local copy of the internal table. Then only delta information is returned to the RFC client. This information is not returned to the RFC client every time a table operation occurs, however; instead, all collected delta information is passed on at once when the function returns to the client.
The first time a table is passed, it is given an object-ID and registered as a "virtual global table" in the calling system. This registration is kept alive as long as call-backs are possible between calling and called systems. Thus, if multiple call-backs occur, the change-log can be passed back and forth to update the local copy, but the table itself need only be copied once (the first time). -
Hi,
I have created BAPI using the Zfunction Module. Now this is working fine.
Now i have changed the parameteres in Z FM. When I executed the BAPI. It is giving error. So, i have re generated the BAPI. But new parameters are not coming in BAPI.
My doubt is, after changes in FM, in BAPI What steps i have to do. is re generate enough? or any thing i have to do?
Regards,
BaluHi,
Check the source code of the BAPI if it matches with the changed parameters of the Z Function Module. If it was working fine before, the problem must lie in the source code of the BAPI where the Z Function Module parameters are passed.
Regards,
Vik -
RFC Lookup Table Parameters Reusability
Dear All
My Requirement is to Map fields in IDoc from the File data ,there are some fields in idoc for which i need to fetch data from SAP.
For this i am using RFC Look up. i am retrieving values from table parameters for RFC.
and this Table parameters are being used muliple times in Mapping.
Right now i have to execute the same RFC for set of input data atleast 5 r 6 times.
This is effective Performance of the Interface
Is there any concept of Reusuability in RFC Lookup while Mapping in PI.?
Can we use Java Initialization section in mapping for executing the RFC once and using the output data in table parameters while mapping various target fields.
Hoping for a Positive Reply
Regards
BhaskerHi,
1) If it is PI 7.1 there are mapping enhancements, such as
a) Variables for storing intermediate mapping value,
b) for RFC lookup etc.
you can find the 7.1 pdfs from SDN
2) you can have a two stage mapping, putting them sequentially in Interface mapping object.
First step : Source to Target (orignal target structure)
here you can do all the mapping and also One time RFC lookup, but leaving the other fields where you need the lookup values again
Second step : Target to Target
here already mapped target becomes your input & you know the fields which have the value & the fields that you need to map again and all other fields are one to one mapping.
Regards
Vishnu -
In BAPI's why the structures are used in table parameters?
Hello sir,
what is BAPI sir? In BAPI's why the structures are used in table parameters? table parameters they are using structures but not using any customized tables ?
regards
rachu.Hello Rachu
BAPIs provide RFC-enabled interfaces to SAP business objects (e.g. like customer, sales order, purchase order, etc.).
A BAPI does basically the same like you would need to do calling the corresponding transaction (e.g. BAPI_SALESORDER_CREATE -> VA01).
Since they are RFC-enabled they can be called from external systems.
BAPIs represent an external interface for the outside world. Very often you will find within the BAPI that there is a mapping done to the (SAP-)internal structures at the beginning of the coding and vice versa at the end of the coding. Thus, you will (almost) never find any DB table name used as type of a BAPI TABLES parameter.
Regards
Uwe -
RFC Lookup with RFC - not BAPI
Hi all,
Is it possible to make an RFC lookup to a Function Module remote enabled that not is properly a BAPI? I'm trying using Michael RFC lookup sample, but in the sample he uses BAPI_PO_GETDETAIL (it's working fine to me). When I call a Function Module (import it to XI, make all the steps as in the sample), it returns an error "parameter with name RETURN not found".
I have tried to put this parameter exactly as it is on BAPI_PO_GETDETAIL, but still didn't work. Some tip?
thanks!!!
robertiroberti,
Is it possible to make an RFC lookup to a Function Module remote enabled that not is properly a BAPI?
>> yes you can do it .
in rfc function module do you have import and export parameters right. check whether Retrun is passed or not. if you dont structure to accept RETURN as input then dont passit RFC function module
Regards
sreeram.g.reddy -
Passing values to RFC/BAPI Table
Hi,
I am having a very strange problem. While passing the values to RFC/BAPI table using add method the values are not passed to backend SAP. Below is the code which I am using just to pass some data in RFC/BAPI table.
The same code was working few days back. Is there any configuration in JCO or any other problems other than the code?
Your l help is greatly appreciated.
public void executeZtest_Function_Input( )
// //@@begin executeZtest_Function_Input()
// //$$begin Service Controller(943377124)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try{
Ztest_Function_Input input = new Ztest_Function_Input();
for (int i=0; i<5;i++){
Zhr_Ear_Cclist cc =new Zhr_Ear_Cclist();
cc.setFi_User("[email protected]");
input.addIcc_List(cc);
wdContext.nodeZtest_Function_Input().bind(input);
wdContext.currentZtest_Function_InputElement().modelObject().execute();
wdContext.nodeOutput().invalidate();
} catch(WDDynamicRFCExecuteException ce) {
manager.reportException(ce.getMessage(), false);
//$$end
//@@endHi Raksh,
I also got the same problem. Please check the following ways then you will solve problem.
1. First check the appropriate BAPI in SAP GUI Software. You have to determine where is the problem?. Is it in Dynpro or BAPI itself?.
2. Suppose the BAPI structure change you will wont't run. If BAPI strusture change you have to reimport BAPI.
3. Please check the JCo connectio using test Button. Then redeploy your project.
4. Rebuild your project then redeploy.
Check the above ways you may get answer.
Kind Regards,
S.Saravanan -
RFC lookup error when table in change mode
Hi,
I´m using an RFC lookup from XI to translate external to internal partner nr. Input to the FM in R/3 is the external partner nr och the FM should return the internal partner nr to XI. The problem is that when a user edits the table that my FM reads from a get an error.
- Isn´t it possible to read a r/3 table while it is in change mode? Is my only way around this to create a z version of this table?
ClaesHi Claes
have a look on these links ,
For your RFC lookup,
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
RFC lookups pdf https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Michal's Blog on RFC Mapping Lookup:/people/michal.krawczyk2/blog/2005/09/15/xi-rfc-mapping-lookups-from-bc-to-xi
RFC Lookup.
RFC lookup return no values
http://help.sap.com/saphelp_nw2004s/helpdata/en/17/d609b48ea5f748b47c0f32be265935/frameset.htm
Also check this useful link which also talk about Value Lookup:
Value lookup
http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
/people/prasad.illapani/blog/2006/10/25/how-to-check-jdbc-sql-query-syntax-and-verify-the-query-results-inside-a-user-defined-function-of-the-lookup-api
Lookups - /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
Lookups - /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Thanks !! -
Can you read Reports and Tables through RFCs and BAPIS?
Is there any way to read established reports and tables through RFC or BAPI function calls? We have a middleware that can execute various BAPIs and RFCs. I see a few promising ones: RFC_READ_REPORT, but no examples anywhere what the parameters needed are for the inputs.
Hello Scott,
Check below FMs for reading tables and programs.
Tables : RFC_READ_TABLE
Program : RFC_READ_DEVELOPMENT_OBJECT
Please note that for reading program using RFC_READ_DEVELOPMENT_OBJECT , lines in program should not exceed 72 chars else FM will throw dump(READ_REPORT_LINE_TOO_LONG).
Program code will appear in table QTAB which is 72 chars wide. -
Calling a BAPI with Table parameters in BRFplus
Hi, BRFplus experts...
How can we configure a BAPI "Changing Table" parameter when it's called form a "Call Procedure" action in BRFplus?
We'd like to use a BAPI (i.e. BAPI_REQUEST_CREATE) to create a REQUEST in BRFplus. We're using Call Type "Function Module" in a "Call Procedure" Action Type.
Importing parameters are working properly, we've set Direct Values, Context Param or expressions.... like always in BRFplus...
Problem arises when we'd need to"feed" values in a Table in the FM; i.e. REQUESTITEMIN in the mentioned BAPI (FM)...
...only "Context Parameter" appears, and after creating them and updating the values , no values are sent to the FM ....(already checked with debugging...) The REQUEST ITEM is mandatory in the standard object....
So, if anyone could give us any clue, it will be appreciated....
Thanks in advance....Hi, Carsten
Many thanks for your reply.
We've alredy debugged the coding, but still not found why parameters are not passed....
If we try to test another "wrapper" FM the problen will persist if it contains "TABLE" optional parameters...We couldn`t find the way to manage them in BRF+......
Parameter "Source Table for Column Update" .... appears after selecting the parameter REQUESTITEMIN in the list of the "Add Parameter" button and we do'nt know how can we manage it...
In the field of the component name REQUESTITEMIN we've already assign values for ALL fields, with "context Parameters.", but we don't really understand why the BRFplus does not allow to assign Direct values or expressions like in the importing parameters.....
We couldn't find any example in BRF with "Tables" parameters feeded.......
Notes are already checked deeply....(we're in NW 702 SP 10....)
Kind regards -
Problem with RFC and empty table
Hi,
I have a problem using and RFC function module. The problem is that the RFC returns a table type, but even though the table is emtpy the tag is returned. I have this target structure who has a required subsstructure:
Input:
<RFC_function_module>
<customers>
<customer1>
<table1> (0..1)
<item> (0..Unbounded)
<salesorder>
<customer2>
<table1>
<item>
<salesorder>
<table2>
<item>
<accountdoc>
result:
<customers>
<list1> (0..1)
<table1> (1..Unbounded)
<list2> (0..1)
<table2> (1..Unbounded)
The problem is that if i just do at simpel mapping the mapping returns error because the missing table2 in the result. Then i have tried with an Exists function but it seems like the mapping program searches the hole file for just one occurences. Not record by record.
Do anyone understand my problem an has a solution?
/JakobOK - what do you mean by to level of mapping? Mapping to an "internal" structure first and then for the final output?
The reason i do not whant to change the External defintions is because of changes. If the ones who have designet the external defintions ie. adds a field or something like that, we should remember to change this kind of thing before updating.
Jakob -
Hi,
I am performing RFC lookup using Communication Channel.
I have used a function called "Z_MATERIAL_DETAILS".
Input to this function is "MATERIALID" and Output of the function is "MATNR".
I am using the following code in my UDF for performing lookup::
//write your code here
final String CHANNEL_NAME = "CC_RFC_LookUp",
VALNOTFOUND = "VALUE_NOT_FOUND",
SAPRFCNS = "urn:sap-com:document:sap:rfc:functions",
TAG_FM = "Z_MATERIAL_DETAILS",
// TAG_QTB = "QUERY_TABLE",
TAG_QFL = "UOMCODE"; //UOMCODE
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
factory.setNamespaceAware(false);
factory.setValidating(false);
try {
builder = factory.newDocumentBuilder();
} catch (Exception e) {
// trace.addWarning("Error creating DocumentBuilder - " + e.getMessage());
result.addValue(e.toString());
Document docReq = null;
try {
// Building up RFC Request Document
docReq = builder.newDocument();
Node root = docReq.appendChild(docReq.createElementNS(SAPRFCNS, TAG_FM));
root.appendChild(docReq.createElement(TAG_QFL)).appendChild(docReq.createTextNode(resultFieldName[0]));
} catch (Exception e) {
// trace.addWarning("Error while building RFC Request - " + e);
result.addValue(e.toString());
// trace.addInfo("RFC Request XML: " + docReq.toString());
// Lookup
Payload result1 = null;
try {
Channel channel = LookupService.getChannel("EC1CLNT800", "CC_RFC_LookUp");
RfcAccessor accessor = LookupService.getRfcAccessor(channel);
InputStream is = new ByteArrayInputStream(docReq.toString().getBytes());
XmlPayload payload = LookupService.getXmlPayload(is);
result1 = accessor.call(payload);
} catch (LookupException e) {
// trace.addWarning("Error during lookup - " + e);
result.addValue(e.toString());
// Parsing RFC Response Document
Document docRsp = null;
try {
docRsp = builder.parse(result1.getContent());
} catch (Exception e) {
// trace.addWarning("Error when parsing RFC Response - " + e.getMessage());
result.addValue(e.toString());
//trace.addInfo("RFC Response XML: " + docRsp.toString());
String res = "";
try {
res = docRsp.getElementsByTagName("UOMTEXT").item(0).getFirstChild().getNodeValue();
} catch (Exception e) {
// trace.addWarning("Result value not found in DOM - " + e.getMessage());
result.addValue(e.toString()+VALNOTFOUND);
result.addValue(res);
Code in Z_MATERIAL_DETAILS ::
""Local Interface:
*" IMPORTING
*" VALUE(UOMCODE) LIKE MARA-MFRPN OPTIONAL
*" EXPORTING
*" VALUE(UOMTEXT) LIKE MARA-MATNR
*" EXCEPTIONS
*" val_not_found
<b>select single matnr from mara into uomtext where mfrpn = uomcode.</b>
if sy-subrc <> 0.
raise val_not_found.
endif.
ENDFUNCTION.
<b>When i send three material ids the function module will access the R/3 system thrice which will give rise to PERFORMANCE ISSUE.
So,is there any way to send all the materialids at one time to Function module and similarly receive all the MATNR from Function at once,so that we need to access R/3 system only once.</b>HI,
Check this link for passing table parameter in JCO call.
http://www.sapdevelopment.co.uk/java/jco/jco_callfunc.htm
Following is the code for retrieving table parameter in JCO call to function BAPI_PO_CREATE.
JCO.Table return_tab = function.getTablesParameterList().getTable("RETURN");
if (return_tab.getNumRows()) > 0 {
// Output the error messages
return_tab.firstRow();
do {
System.out.println(return_tab.getString("MESSAGE");
while (return_tab.nextRow());
} else {
String PO_NUM = function.getExportParametersList().getString("PURCHASEORDER");
System.out.println("Purchase order " + PO_NUM + " created");
Thanks and Regards,
Sandeep Maurya. -
Urgent: RFC Lookup for BAPI in XI
Hi,
I am trying to call a BAPI that exists in XI system,in the Message Mapping in same XI system.
If I run the BAPI,it is working fine.
But if I call this in XI Message Mapping using RFC lookup,it returns garbage.
I am not getting any RFC error.
Can anyone please tell me what could be the reason for this.
Thanks.
Best Regards,
ShwetaHi Shwetha,
Please refer the below weblog:
RFC lookup using JCO (without communication channel)
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
RFC lookup with communication channel.
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Sample code:
public void createAlert(String InterfaceID, String AlertCategory, String errorString,String RFCReceiverCommunicationChannel,String BusinessService)
try{
final String SAPRFCNS = "urn:sap-com:document:sap:rfc:functions",
FUNCTION_MODULE= "Z_FI_RAISE_ALERT";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
factory.setNamespaceAware(false);
factory.setValidating(false);
try {
builder = factory.newDocumentBuilder();
} catch (Exception e) {
Document docReq =null;
try {
docReq = builder.newDocument();
Node root = docReq.appendChild(docReq.createElementNS(SAPRFCNS, FUNCTION_MODULE));
// Creates XML structure which is passed to ABAP function module
root.appendChild(docReq.createElement("I_INTERFACE_ID")).appendChild(docReq.createTextNode(InterfaceID));
root.appendChild(docReq.createElement("I_ERROR")).appendChild(docReq.createTextNode(errorString));
root.appendChild(docReq.createElement("I_ALERTCAT")).appendChild(docReq.createTextNode(AlertCategory));
} catch (Exception e) {
// XML Payload
Payload result1 = null;
try {
Channel channel = LookupService.getChannel(BusinessService, RFCReceiverCommunicationChannel);
RfcAccessor accessor = LookupService.getRfcAccessor(channel);
InputStream is = new ByteArrayInputStream(docReq.toString().getBytes());
XmlPayload payload = LookupService.getXmlPayload(is);
result1 = accessor.call(payload);
} catch (LookupException e) {
// trace.addWarning("Error during lookup - " + e);
// System.out.println(e.toString());
catch(Exception e)
// System.out.println(e.toString());
Thnx
Chirag -
Problem with SP with table parameters
Hello, I have problem with stored procedure with paramater which is table type.
I have defined my own type
CREATE OR REPLACE TYPE STRING_LST AS TABLE OF VARCHAR2(80);
and i have stored procedure like this
PROCEDURE probe(outList OUT STRING_LST) IS BEGIN outList := STRING_LST(); outList.EXTEND(); outList(outList.LAST) := 'ONE'; outList.EXTEND(); outList(outList.LAST) := 'TWO'; outList.EXTEND(); outList(outList.LAST) := 'THREE'; END probe;
I have java class which connects to the database and calls this procedure
package mypackage; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Types; import java.sql.Array; public class DAO_Test { public static String toNormalString (String aa) { if (aa != null && aa.startsWith("0x")) { StringBuffer str = new StringBuffer(64); for (int i = 2; i < aa.length(); i += 2) { str.append((char) Integer.parseInt(aa.substring(i, i + 2), 16)); } return str.toString(); } else { return aa; } } public void probe ( ) { try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection("dbc:oracle:thin:@server_ip:database_name", "sa", "blahblah"); String sql = "{ CALL PROBE(?) }"; String sqlType = "STRING_LST"; CallableStatement cs = conn.prepareCall(sql); cs.registerOutParameter(1, Types.ARRAY, sqlType); cs.execute(); Array arr = cs.getArray(1); String[] values = (String[]) arr.getArray(); for (int i = 0; i < values.length; i++) { System.out.println("" + i + ": '" + toNormalString(values) + "'");
cs.close();
conn.close();
} catch (SQLException e) {
logger.error("SQLException", e);
} catch (Exception e) {
logger.error("Exception", e);
public static void main (String args[]) throws SQLException {
DAO_Test test = new DAO_Test();
test.probe();
Now...
When I run this class on my local machine the result is OK nad looks like
1: 'ONE'
2: 'TWO'
3: 'THREE'
But when I copy this class on the server and run it, the result is wrong
1: '???'
2: '???'
3: '???'
Here is my environment:
on local machine
eclipse 3.3.1
java 1.5 (java version compiler in eclipse is 1.4)
on server
oracle 9.2.0.6.0
java 1.4.2_08
Result from table parameters are always 3 question marks :|
What is the problem?
RafałHI,
I think i found the solution: nls_charset12.jar from page
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html
I have copied this jar to server lib directory and it works fine :) -
RFC Lookup - Best Approach To Parse Returned Tables
Hi Everyone,
We are doing some RFC Lookups at a header node that are returning tables for all of the items (for performance reasons). I am trying to figure out what the best way to extract the values from the table, which is most of time has more than 1 key column. At the moment I am doing this through DOM, but I have also heard about using arrays, and have even seen an example of using a hashtables with all of the values concatenated together to later parse out using substrings. I'm looking for the best approach to:
1) Store this data as some kind of global object to lookup during the header
2) Search and Parse from the global object during linte items.
As an example, I have the following lines in my table:
Key1,Key2,Value1,Value2,Value3
A,A,1,2,3
A,B,1,2,4
A,C,3,4,2
B,A,2,4,6
And during line item processing I may want to find the value for Key1=A, Key2=C.
Thanks
PeterHi Peter,
Please take a look at these...
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
cheers,
Prashanth
P.S Please mark helpful answers
Maybe you are looking for
-
I am trying to view an SVG file but it is unreadable because the font in the diagram is too large. In the Firefox error console, I see a CSS error: Error in parsing value for 'font-size'. Declaration dropped. What's happening? (Please cc your reply t
-
Network Utilization Lower Than Expected
We are imaging systems using PXE and have 8 of them going at the same time. We looked on the server and it had like 200 mbps usage. I would expect it to be much higher (we have 2 - 1 gig nics on the server). Is there something that throttles this
-
Center sliced CSS layout?
I'm sure I'm just missing something really simple here, but I've got a great sliced up layout successfully exported and everything from PSCS3 Extended. My question is whether or not there is some setting in the output dialogs in Save for Web that wil
-
New to using Arch64 and having several problems. Hal seems to be mounting a random 100mb partition from one of my windows XP NTFS drives. Anything I download using firefox is corrupt, and does not appear under firefox's "downloads" section. - 2.0.0.6
-
The 4 5 6 keys and the up down arrows do not work. I had the Cap C off for a While Had hit some key command that shut it off so I got a new keyboard and it did the same. HAs anyone had this problem