插入带有类别+ BullHorn的候选人

时间:2015-03-16 08:05:09

标签: php api rest categories

我正在尝试使用PHP通过REST API保存和更新Bullhorn中的候选人 我从BullHorn加载了一个候选人,我的类别以这种方式显示:

["categories"]=>
object(stdClass)#632 (2) {
  ["total"]=>
  int(2)
  ["data"]=>
  array(0) {
  }
}
["category"]=>
object(stdClass)#654 (1) {
  ["id"]=>
  int(1123135)
}

我可以看到我的ID等于1123135。但我怎么知道这些是哪些类别?我在BullHorn中选择了两个类别,我的ID现在是 1123135 ....我有“电子营销专家,数据科学...... ”等类别。

但是,如何根据用户选择的选项更新这些类别?

1 个答案:

答案 0 :(得分:0)

Bullhorn中的类别与大多数其他实体类似。这就是我这样做的方式

function BHGetCategoryData($entity_type, $entity_id) {

    $url = $_SESSION['restUrl'].'entity/'.$entity_type.'/'.$entity_id.'?BhRestToken='.$_SESSION['BhRestToken'].'&fields=id,name';

    $options = array( 
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,    
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_AUTOREFERER    => true,    
        CURLOPT_CONNECTTIMEOUT => 120, 
        CURLOPT_TIMEOUT        => 120,      
        ); 

    $ch  = curl_init( $url ); 
    curl_setopt_array( $ch, $options ); 
    $data = curl_exec( $ch ); 

    $obj = json_decode($data, true);

    curl_close( $ch ); 

    return $obj;

}

function BHQueryCategory() {

    $url = $_SESSION["restUrl"]."/query/Category?where=enabled=true%20AND%20id>1&fields=id,name&orderBy=id&count=100&BhRestToken=".$_SESSION["BhRestToken"];


    $options = array( 
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => false,    
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_AUTOREFERER    => true,    
        CURLOPT_CONNECTTIMEOUT => 120, 
        CURLOPT_TIMEOUT        => 120,      
        ); 

    $ch  = curl_init( $url ); 
    curl_setopt_array( $ch, $options ); 
    $data = curl_exec( $ch ); 

    $obj = json_decode($data, true);

    return $obj;


}

// This dumps a list of categories
var_dump(BHQueryCategory());

$entity_id= 1123135;
$entity_type='Category';

// This will query one category for the name and id
var_dump(BHGetCategoryData($entity_type, $entity_id));

这当然假设你有你的休息网址和休息标记以及所有这些东西都需要处理。

由于动态提取所有类别的时间延迟,我可能会建议您下载完整列表并填充客户端 - 而不是每次要填充下拉列表时调用查询。

这里还有一个令人困惑的地方。有"类别"可以作为候选记录的单个值写入。还有"类别"这是一个" To-Many"关系并且不能与主要实体一起编写,必须单独调用。下面是一个可以做到这一点的功能。

function BHCreateCandidateToMany($candid,$codegroup,$codestring) {

$url = $_SESSION['restUrl'].'entity/Candidate/'.$candid.'/'.$codegroup.'/'.$codestring.'?BhRestToken='.$_SESSION['BhRestToken'];

echo $url;


$options = array( 
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_HTTPHEADER => Array("Content-Type: application/json"),
    CURLOPT_CUSTOMREQUEST => "PUT", 
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_AUTOREFERER    => true,    
    CURLOPT_CONNECTTIMEOUT => 120, 
    CURLOPT_TIMEOUT        => 120,      
  ); 

$ch  = curl_init( $url ); 
curl_setopt_array( $ch, $options ); 
$data = curl_exec( $ch ); 

$obj = json_decode($data, true);

curl_close( $ch ); 

return $obj;
}

文档可在此处找到 - http://developer.bullhorn.com/documentation/rest-api-1-1-update

(请根据需要整理代码 - 只需粗略的草稿即可让您继续前进)