Please tell me what I am doing Wrong.
When I call WebService
http://localhost/bpms/webservice/rest/server.php?wstoken=4e32dfedce5436511a97478298d00705&wsfunction=local_createcourse&moodlewsrestformat=json&iid=113
local_createcourse // externallib function.
It shows error
{"exception":"dml_missing_record_exception","errorcode":"invalidrecord","message":"Can not find data record in database table external_functions.","debuginfo":"SELECT * FROM {external_functions} WHERE name = ?\n[array (\n 0 => 'local_createcourse',\n)]"}
http://localhost/bpms/webservice/rest/server.php?wstoken=4e32dfedce5436511a97478298d00705&wsfunction=local_createcourses&moodlewsrestformat=json&iid=113
local_createcourses // Web Service function mentioned in services.php
It shows error
The website encountered an error while retrievinghttp://localhost/bpms/webservice/rest/server.php?wstoken=4e32dfedce5436511a97478298d00705&wsfunction=local_createcourses&moodlewsrestformat=json&iid=113. It may be down for maintenance or configured incorrectly.
Details of all page (client.php, services.php, externallib.php) are attached.
[code]
What is I am doing wrong Please help me
/////////////////// db->Service Page
$functions = array(
'local_createcourses' => array(
'classname' => 'createcourse_external', // class name
'methodname' => 'local_createcourse', // class main function
'classpath' => 'local/createcourse/externallib.php', // plugin path
'description' => 'Return course link', // description
'type' => 'write', // mode write or read
)
);
// We define the services to install as pre-build services. A pre-build service is not editable by administrator.
$services = array(
'Risk Assessment Tool' => array(
'functions' => array ('local_createcourses'), // client function call name, both will same this and function array
'restrictedusers' => 0,
'enabled'=>1,
)
);
/////////////////// external Page
require_once('/createcourse.php'); // local custom function work perfectly independently
class createcourse_external extends external_api {
/**
* @Returns description of method parameters
* @return external_function_parameters
*/
public static function createcourse_parameters(){
return new external_function_parameters(
array('iid' => new external_value(PARAM_INT, 'iid'))
);
}
/**
* @Returns ID
* @return string course link
*/
public static function local_createcourse($iid){
$url=creates($iid);
return $url;
}
/**
* @Returns description of method result value
* @return external_description
*/
public static function createcourse_returns() {
return new external_value(PARAM_TEXT, 'The Course link');
}
}
/////////Client Page
include('../externallib.php');
/// SETUP - NEED TO BE CHANGED
$token = '4e32dfedce5436511a***********';
$domainname = 'http://localhost/bpms';
/// FUNCTION NAME
//$functionname = 'local_createcourses'; // as define in services function name
/// PARAMETERS
//$iid=$_GET[‘iid’];
///// XML-RPC CALL
header('Content-Type: text/plain');
$serverurl = $domainname . '/webservice/rest/server.php'. '?wstoken=' . $token;
require_once('/curl.php');
$curl = new curls;
$post = xmlrpc_encode_request('local_createcourses',local_createcourse($iid), array('encoding' => 'UTF-8'));
$resp = xmlrpc_decode($curl->post($serverurl, $post));
print_r($resp);
return $resp;
}
}
[/code]