On Mon, Jul 15, 2013 at 4:21 AM, Adam Nicholls <inkysplat@xxxxxxxxx> wrote: > Hi Andrew > > Thanks for this. > > But I'm still getting errors. I think I need to explain a bit more. > > Unfortunately there isn't a PHP API for this application I'm trying to > interact with, my goal really is to be able to expose the COM > functionality over a web-service such as SOAP so I can use it in a > CMS. The application I'm trying to integrate with is Blackbuad's > Raiser's Edge - API documentation here: > https://www.blackbaud.com/files/support/guides/re7ent/api.pdf > > I think part of the problem is that the field names are also > represented by an integer. So to get data out I would do: > > $oBank->Fields(22); // which maps to BANK_fld_BRANCH_NAME. > > When I do: > > $oBank->22 = 'blah blah'; > > I get an error because a property can't be numeric, it has to start as > alpha character. If I use: > > $oBank->BANK_fld_BRANCH_NAME = 'blah blah blah'; > > I get the following error: > > Fatal error: Uncaught exception 'com_exception' with message 'Unable > to lookup `BANK_fld_BRANCH_NAME': Unknown name. > > I've also tried using your Value property returned by Fields(): > > $oBank->Fields(22)->Value = 'Blah Blah blah blah'; > > Which I then get: > PHP Warning: Creating default object from empty value in [C:\Users....] > Fatal error: Call to undefined method variant::Save() > > Soo seems nearly impossible to implement a safe way to write to the COM API. > > > At the moment, I'm still in the scoping/prototype stage of my project, > so I'm beginning to think that using this COM API for this project is > a no-go, which is unfortunate. I'm also guessing even if we did > implement this API, exposing it as a Web Service is going to be tricky > for performance sake (given that I've read that COM doesn't > multithread very well??) > > Many Thanks > Adam. It's definitely possible to do, once you figure out the syntax you need for this object. I'm guessing you must have gotten past the $oBank->Init() method call without issues. What happens if you just use this for the value assignment? $oBank->Fields(BANK_fld_ACCOUNT_NAME) = "Test account"; $oBank->Fields(BANK_fld_ACCOUNT_NO) = "12345"; $oBank->Fields(BANK_fld_BANK) = "Bank of the Nation"; $oBank->Fields(BANK_fld_BRANCH_NAME) = "State Street Branch"; It also looks like you're getting errors from the call to $oBank->Save() saying that the method is not defined. Andrew -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php