diff --git a/core/csvbulkexport.class.inc.php b/core/csvbulkexport.class.inc.php
index 409c58d1b..995996d13 100644
--- a/core/csvbulkexport.class.inc.php
+++ b/core/csvbulkexport.class.inc.php
@@ -168,9 +168,17 @@ class CSVBulkExport extends TabularBulkExport
}
}
- protected function GetSampleData(DBObject $oObj, $sAttCode)
+ protected function GetSampleData($oObj, $sAttCode)
{
- return trim($oObj->GetAsCSV($sAttCode), '"');
+ if ($oObj)
+ {
+ $sRet = trim($oObj->GetAsCSV($sAttCode), '"');
+ }
+ else
+ {
+ $sRet = '';
+ }
+ return $sRet;
}
public function GetHeader()
@@ -340,16 +348,16 @@ class CSVBulkExport extends TabularBulkExport
default:
$sField = $oObj->GetAsCSV($aAttCode['attcode'], $this->aStatusInfo['separator'], $this->aStatusInfo['text_qualifier'], $this->aStatusInfo['localize']);
}
- if ($this->aStatusInfo['charset'] != 'UTF-8')
- {
- // Note: due to bugs in the glibc library it's safer to call iconv on the smallest possible string
- // and thus to convert field by field and not the whole row or file at once (see ticket #991)
- $aData[] = iconv('UTF-8', $this->aStatusInfo['charset'].'//IGNORE//TRANSLIT', $sField);
- }
- else
- {
- $aData[] = $sField;
- }
+ }
+ if ($this->aStatusInfo['charset'] != 'UTF-8')
+ {
+ // Note: due to bugs in the glibc library it's safer to call iconv on the smallest possible string
+ // and thus to convert field by field and not the whole row or file at once (see ticket #991)
+ $aData[] = iconv('UTF-8', $this->aStatusInfo['charset'].'//IGNORE//TRANSLIT', $sField);
+ }
+ else
+ {
+ $aData[] = $sField;
}
}
$sData .= implode($this->aStatusInfo['separator'], $aData)."\n";
diff --git a/core/excelbulkexport.class.inc.php b/core/excelbulkexport.class.inc.php
index 1d33bccd1..a89a08284 100644
--- a/core/excelbulkexport.class.inc.php
+++ b/core/excelbulkexport.class.inc.php
@@ -225,29 +225,33 @@ class ExcelBulkExport extends TabularBulkExport
$aData = array();
foreach($aAliasByField as $aAttCode)
{
+ $oObj = $aRow[$aAttCode['alias']];
$sField = '';
- switch($aAttCode['attcode'])
+ if ($oObj)
{
- case 'id':
- $sField = $aRow[$aAttCode['alias']]->GetKey();
- break;
-
- default:
- $value = $aRow[$aAttCode['alias']]->Get($aAttCode['attcode']);
- if ($value instanceOf ormCaseLog)
+ switch($aAttCode['attcode'])
{
- // Extract the case log as text and remove the "===" which make Excel think that the cell contains a formula the next time you edit it!
- $sField = trim(preg_replace('/========== ([^=]+) ============/', '********** $1 ************', $value->GetText()));
- }
- else if ($value instanceOf DBObjectSet)
- {
- $oAttDef = MetaModel::GetAttributeDef(get_class($aRow[$aAttCode['alias']]), $aAttCode['attcode']);
- $sField = $oAttDef->GetAsCSV($value, '', '', $aRow[$aAttCode['alias']]);
- }
- else
- {
- $oAttDef = MetaModel::GetAttributeDef(get_class($aRow[$aAttCode['alias']]), $aAttCode['attcode']);
- $sField = $oAttDef->GetEditValue($value, $aRow[$aAttCode['alias']]);
+ case 'id':
+ $sField = $oObj->GetKey();
+ break;
+
+ default:
+ $value = $oObj->Get($aAttCode['attcode']);
+ if ($value instanceOf ormCaseLog)
+ {
+ // Extract the case log as text and remove the "===" which make Excel think that the cell contains a formula the next time you edit it!
+ $sField = trim(preg_replace('/========== ([^=]+) ============/', '********** $1 ************', $value->GetText()));
+ }
+ else if ($value instanceOf DBObjectSet)
+ {
+ $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $aAttCode['attcode']);
+ $sField = $oAttDef->GetAsCSV($value, '', '', $oObj);
+ }
+ else
+ {
+ $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $aAttCode['attcode']);
+ $sField = $oAttDef->GetEditValue($value, $oObj);
+ }
}
}
$aData[] = $sField;
diff --git a/core/htmlbulkexport.class.inc.php b/core/htmlbulkexport.class.inc.php
index fe27256fb..ef3f49165 100644
--- a/core/htmlbulkexport.class.inc.php
+++ b/core/htmlbulkexport.class.inc.php
@@ -49,9 +49,17 @@ class HTMLBulkExport extends TabularBulkExport
}
}
- protected function GetSampleData(DBObject $oObj, $sAttCode)
+ protected function GetSampleData($oObj, $sAttCode)
{
- return $oObj->GetAsHTML($sAttCode);
+ if ($oObj)
+ {
+ $sRet = $oObj->GetAsHTML($sAttCode);
+ }
+ else
+ {
+ $sRet = '';
+ }
+ return $sRet;
}
public function GetHeader()
@@ -183,7 +191,12 @@ class HTMLBulkExport extends TabularBulkExport
{
set_time_limit($iLoopTimeLimit);
$sFirstAlias = reset($aAliases);
- $sHilightClass = $aRow[$sFirstAlias]->GetHilightClass();
+ $oMainObj = $aRow[$sFirstAlias];
+ $sHilightClass = '';
+ if ($oMainObj)
+ {
+ $sHilightClass = $aRow[$sFirstAlias]->GetHilightClass();
+ }
if ($sHilightClass != '')
{
$sData .= "
";
@@ -194,15 +207,19 @@ class HTMLBulkExport extends TabularBulkExport
}
foreach($aAliasByField as $aAttCode)
{
+ $oObj = $aRow[$aAttCode['alias']];
$sField = '';
- switch($aAttCode['attcode'])
+ if ($oObj)
{
- case 'id':
- $sField = $aRow[$aAttCode['alias']]->GetHyperlink();
- break;
-
- default:
- $sField = $aRow[$aAttCode['alias']]->GetAsHtml($aAttCode['attcode']);
+ switch($aAttCode['attcode'])
+ {
+ case 'id':
+ $sField = $aRow[$aAttCode['alias']]->GetHyperlink();
+ break;
+
+ default:
+ $sField = $aRow[$aAttCode['alias']]->GetAsHtml($aAttCode['attcode']);
+ }
}
$sValue = ($sField === '') ? ' ' : $sField;
$sData .= "| $sValue | ";
diff --git a/core/spreadsheetbulkexport.class.inc.php b/core/spreadsheetbulkexport.class.inc.php
index 0678d7e67..0aaa5bcfa 100644
--- a/core/spreadsheetbulkexport.class.inc.php
+++ b/core/spreadsheetbulkexport.class.inc.php
@@ -68,9 +68,17 @@ class SpreadsheetBulkExport extends TabularBulkExport
$this->aStatusInfo['localize'] = (utils::ReadParam('no_localize', 0) != 1);
}
- protected function GetSampleData(DBObject $oObj, $sAttCode)
+ protected function GetSampleData($oObj, $sAttCode)
{
- return $oObj->GetAsHTML($sAttCode);
+ if ($oObj)
+ {
+ $sRet = $oObj->GetAsHTML($sAttCode);
+ }
+ else
+ {
+ $sRet = '';
+ }
+ return $sRet;
}
public function GetHeader()
diff --git a/core/tabularbulkexport.class.inc.php b/core/tabularbulkexport.class.inc.php
index 8cdcc00bc..5f94f8d03 100644
--- a/core/tabularbulkexport.class.inc.php
+++ b/core/tabularbulkexport.class.inc.php
@@ -100,7 +100,7 @@ abstract class TabularBulkExport extends BulkExport
case 'AttributeExternalKey':
case 'AttributeHierarchicalKey':
$aResult[] = array('code' => $sAttCode, 'unique_label' => $oAttDef->GetLabel(), 'label' => Dict::S('Core:BulkExport:Identifier'), 'attdef' => $oAttDef);
- $aResult[] = array('code' => $sAttCode.'_friendlyname', 'unique_label' => $oAttDef->GetLabel().'->'.Dict::S('Core:FriendlyName-Label'), 'label' => Dict::S('Core:FriendlyName-Label'), 'attdef' => MetaModel::GetAttributeDef($sClass, $sAttCode.'_friendlyname'));
+ $aResult[] = array('code' => $sAttCode.'_friendlyname', 'unique_label' => $oAttDef->GetLabel().'->'.Dict::S('Core:FriendlyName-Label'), 'label' => Dict::S('Core:FriendlyName-Label'), 'attdef' => MetaModel::GetAttributeDef($sClass, $sAttCode.'_friendlyname'));
foreach(MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef)
{
@@ -158,10 +158,10 @@ abstract class TabularBulkExport extends BulkExport
if ($this->IsValidField($sClass, 'id'))
{
$aAllFields[] = array('code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('Core:BulkExport:Identifier'), 'label' => $sShortAlias.'id', 'subattr' => array(
- array('code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('Core:BulkExport:Identifier'), 'label' => $sShortAlias.'id'),
- array('code' => $sShortAlias.'friendlyname', 'unique_label' => $sShortAlias.Dict::S('Core:FriendlyName-Label'), 'label' => $sShortAlias.Dict::S('Core:FriendlyName-Label')),
+ array('code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('Core:BulkExport:Identifier'), 'label' => $sShortAlias.'id'),
+ array('code' => $sShortAlias.'friendlyname', 'unique_label' => $sShortAlias.Dict::S('Core:FriendlyName-Label'), 'label' => $sShortAlias.Dict::S('Core:FriendlyName-Label')),
));
- }
+ }
foreach(MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef)
{
if($this->IsSubAttribute($sClass, $sAttCode, $oAttDef)) continue;
@@ -266,13 +266,13 @@ EOF
return true; //$oAttDef->IsScalar();
}
- protected function GetSampleData(DBObject $oObj, $sAttCode)
+ protected function GetSampleData($oObj, $sAttCode)
{
if ($oObj == null) return '';
return $oObj->GetEditValue($sAttCode);
}
- protected function GetSampleKey(DBObject $oObj)
+ protected function GetSampleKey($oObj)
{
if ($oObj == null) return '';
return $oObj->GetKey();
diff --git a/core/xmlbulkexport.class.inc.php b/core/xmlbulkexport.class.inc.php
index f6b28d40b..eec7676bf 100644
--- a/core/xmlbulkexport.class.inc.php
+++ b/core/xmlbulkexport.class.inc.php
@@ -63,9 +63,17 @@ class XMLBulkExport extends BulkExport
$this->aStatusInfo['localize'] = (utils::ReadParam('no_localize', 0) != 1);
}
- protected function GetSampleData(DBObject $oObj, $sAttCode)
+ protected function GetSampleData($oObj, $sAttCode)
{
- return $oObj->GetAsXML($sAttCode);
+ if ($oObj)
+ {
+ $sRet = $oObj->GetAsXML($sAttCode);
+ }
+ else
+ {
+ $sRet = '';
+ }
+ return $sRet;
}
public function GetHeader()
diff --git a/webservices/itoprest.examples.php b/webservices/itoprest.examples.php
index 5935048a1..076e3d798 100644
--- a/webservices/itoprest.examples.php
+++ b/webservices/itoprest.examples.php
@@ -158,8 +158,63 @@ $aOperations = array(
'depth' => 4, // max recursion depth
),
);
+$aOperations = array(
+ array(
+ 'operation' => 'core/create', // operation code
+ 'comment' => 'Automatic creation of attachment blah blah...', // comment recorded in the change tracking log
+ 'class' => 'Attachment',
+ 'output_fields' => 'id, friendlyname', // list of fields to show in the results (* or a,b,c)
+ // Values for the object to create
+ 'fields' => array(
+ 'item_class' => 'UserRequest',
+ 'item_id' => 1,
+ 'item_org_id' => 3,
+ 'contents' => array(
+ 'data' => 'iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAIAAAC0tAIdAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACmSURBVChTfZHRDYMwDESzQ2fqhHx3C3ao+MkW/WlnaFxfzk7sEnE6JHJ+NgaKZN2zLHVN2ssfkae0Da7FQ5PRk/ve4Hcx19Ie6CEGuh/6vMgNhwanHVUNbt73lUDbYJ+6pg8b3+m2RehsVPdMXyvQY+OVkB+Rrv64lUjb3nq+aCA6v4leRqtfaIgimr53atBy9PlfUhoh3fFCNDmErv9FWR6ylBL5AREbmHBnFj5lAAAAAElFTkSuQmCC',
+ 'filename' => 'myself.png',
+ 'mimetype' => 'image/png'
+ ),
+ ),
+ ),
+ array(
+ 'operation' => 'core/get', // operation code
+ 'class' => 'Attachment',
+ 'key' => 'SELECT Attachment',
+ 'output_fields' => '*',
+ )
+);
+$aOperations = array(
+ array(
+ 'operation' => 'core/get', // operation code
+ 'class' => 'PhysicalDevice',
+ 'key' => 'SELECT PhysicalDevice WHERE id < 3',
+ 'output_fields' => '*+', // list of fields to show in the results (* or a,b,c)
+ ),
+);
+$aOperations = array(
+ array(
+ 'operation' => 'core/create', // operation code
+ 'comment' => 'Synchronization from blah...', // comment recorded in the change tracking log
+ 'class' => 'UserRequest',
+ 'output_fields' => 'id, friendlyname', // list of fields to show in the results (* or a,b,c)
+ // Values for the object to create
+ 'fields' => array(
+ 'org_id' => "SELECT Organization WHERE name = 'Demo'",
+ 'caller_id' => array('name' => 'monet', 'first_name' => 'claude'),
+ 'title' => 'issue blah',
+ 'description' => 'something happened'
+ ),
+ ),
+);
+$aXXXOperations = array(
+ array(
+ 'operation' => 'core/check_credentials', // operation code
+ 'user' => 'admin',
+ 'password' => 'admin',
+ ),
+);
-if (true)
+if (false)
{
echo "Please edit the sample script and configure the server URL";
exit;