#24465 [Bgs->Sus]: No abilty to assign value to object array
ID: 24465
Updated by: wez@php.net
Reported By: artpego at hotmail dot com
-Status: Bogus
+Status: Suspended
Bug Type: COM related
Operating System: Windows XP SP1
PHP Version: 4.3.2
New Comment:
PHP does not currently support this kind of thing.
PHP 5 *should* allow it using [] array access, but it does not yet.
Suspending this until the required hooks are present in the engine.
Previous Comments:
------------------------------------------------------------------------
[2003-07-03 03:56:22] derick@php.net
Right
------------------------------------------------------------------------
[2003-07-03 03:51:45] postings-php-bug at hans-spath dot de
Maybe this helps you:
http://www.phpbuilder.net/columns/alain20001003.php3?page=3
Look for "$cell".
However, I think this is not a bug, but a support question. So this is
not the appropriate place to ask.
------------------------------------------------------------------------
[2003-07-03 00:45:49] artpego at hotmail dot com
Do not dismiss this so quickly as not understanding PHP syntax. I am a
very compentant PHP coder for a large company (a company which I am
trying to show that PHP can replace their horrible asp/VB systems for
accessing SAP). I understand PHP syntax very well and that using:
$optionAdd(1,"TEXT")="FCURR = 'NTD'";
Will cause a parse error ##using an equal '=' sign after what php would
see as a funtion call is impossible## None the less, I have not found a
way to assign this value. The
whole point is that I have to assign a value to a co-ordinate:
TABLE COL1
ROW1 #VALUE#
this co-oridinate/value is represented by (1,1)
I can retrieve the default value assigned to this co-ordinate by
using:
$myValue=$optionAdd->value(1,1); ## LEGAL, I get my value back
I am unable to ASSIGN a value since every time I try it would be
hurting the parser's feelings or breaking the metods rules.
$optionAdd->value(1,1)="Some Text"; Unexpected '=' Error
$optionAdd->value="Some Text"; propput failed invalid index
$optionAdd->appendRow(1,1);
$optionAdd="Some Text"; Invalid number of arguments appendRow
The list goes on and on. I have spent more time than I can imagine
hunting for ways to modify my script. I have researched the SAP COM
methods for alternate solutions, I have studied examples in every other
language, I tried everything I know how to do. I cannot do this. If you
it is as simple as not understanding PHP syntax, then show me how it is
done, otherwise, tell me why it can't be done.
------------------------------------------------------------------------
[2003-07-02 21:38:38] sniper@php.net
Learn PHP syntax first.
------------------------------------------------------------------------
[2003-07-02 15:01:15] artpego at hotmail dot com
Description:
------------
This is caused while using the "RFC_READ_TABLE" remote function call
for SAP R/3. The ability to add a value to a temporary table at a
specified row and column is required.
Reproduce code:
---------------
$funSap=new COM("SAP.Functions") or die ("Did Not Create");
$myFun=$funSap->Add("RFC_READ_TABLE");
$optionAdd=$myFun->Tables("OPTIONS");
$optionAdd->AppendRow();
$optionAdd(1,"TEXT")="FCURR = 'NTD'";
Expected result:
----------------
The script above supposed to do the following:
a) $optionAdd=$myFun->Tables("OPTIONS")
## CREATE A TABLE NAMED OPTIONS.
b) $optionAdd->AppendRow()
## METHOD CALLED TO ADD A BLANK ROW TO THE OPTIONS TABLE
c) $optionAdd(1,"TEXT")="FCURR = 'NTD'"
## ASSIGN THE VALUE "FCURR = 'NTD'" TO THE OPTIONS TABLE (ROW 1,
COLUMN1)==(1,"TEXT")
Actual result:
--------------
## ERROR -> parse error, unexpected '=' in line ...
This is due to the line $optionAdd(1,"TEXT")="FCURR = 'NTD'"
I have tried countless combinations, read every piece of documentation,
searched the internet for over a week and can see exambles in every
other language doing exactly this with COM objects (VB,Java,PERL,Etc).
Every other part of the script works
a) I can connect to SAP
b) I can query functions and tables and get results
However: If I am unable to use the portion of the script listed above,
there is no way to limit my queries through a "WHERE CLAUSE" or even
select specific fields... This means my query results would return
every row from the entire table (some have millions of entries) and
there is a buffer width of 512 Bytes that can not be exceeded for each
row. Your assistance will be greatly appreciated.
Michael
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=24465&edit=1
Thread (7 messages)