Hi,
I already done text search in my intf.pas but not found ‘NewStruct’. BTW here my php code.
<?php
require("MCIS_intf.inc");
$server = new xmlrpc_client("http://10.21.20.46:8181/bin");
$message = new xmlrpcmsg('MCISSecurity.AuthenticateUser',array(new xmlrpcval('20217900', 'string'),
new xmlrpcval('8010', 'string')));
$result = $server->send($message);
if (!$result) {
print "
Could not connect to HTTP server.
";
} elseif ($result->faultCode()) {
print "
XML-RPC Fault #" . $result->faultCode() . ": " .
$result->faultString();
} else {
$struct = $result->value();
$serversession = $struct->structmem('AppServerSessionID');
$aSession = $serversession->scalarval();
}
$message = new xmlrpcmsg(new xmlrpcmsg("MCISService.GetMember");
$message->addParam(new xmlrpcval('190250336504', "string"));
$result = $server->send($message);
if (!$result) {
print "
Could not connect to HTTP server.
";
} elseif ($result->faultCode()) {
print "
XML-RPC Fault #" . $result->faultCode() . ": " .
$result->faultString();
} else {
$struct = $result->value();
$aProCode = $struct->structmem('ProCode');
$ProCode = $aProcode->scalarval();
?>
And I don’t know why every class in my structure in my RODL it generates newstruct related function, here’s one example of the result class of the above service called in *.inc
class TRoUserAuthenticationResult {
public $ResultType; // TRoUserAuthenticationResultType
public $Message; // String
public $AppServerSessionID; // String
function TRoUserAuthenticationResult() {}
static function FromXmlRpcVal($n) {
$res = new NewStruct();
$res->ResultType = $n->structmem(“ResultType”)->scalarval();
$res->Message = $n->structmem(“Message”)->scalarval();
$res->AppServerSessionID = $n->structmem(“AppServerSessionID”)->scalarval();
return $res;
}
static function ToXmlRpcVal($data) {
$res = new xmlrpcval();
$arr = array();
$arr[“ResultType”] = new xmlrpcval($data->ResultType, “int”);
$arr[“Message”] = new xmlrpcval($data->Message, “string”);
$arr[“AppServerSessionID”] = new xmlrpcval($data->AppServerSessionID, “string”);
$res->addStruct($arr);
return $res;
}
static function FromArray($data)
{
$items = array();
for ($i = 0; $i < sizeof($data); $i++) {
$items[$i] = TRoUserAuthenticationResult::ToXmlRpcVal($data[$i]);
}
$res = new xmlrpcval();
$res->addArray($items);;
return $res;
}
static function ToArray($data)
{
$items = array();
for ($i = 0; $i < $data->arraysize(); $i++) $items[$i] = TRoUserAuthenticationResult::FromXmlRpcVal($data->arraymem($i));
return $items;
}
}
I was wondering maybe this was a default procedure of CodeGen.
Thanks