Quickbooks Desktop 多实体自定义字段
Quickbooks Desktop multiple entity custom fields
我正在使用 Web 连接器与 QuickBooks 桌面版进行通信,在 Web 端我正在使用 consolibyte https://github.com/consolibyte/quickbooks-php。现在我有一个用例,我需要使用客户和员工自定义字段。我能够插入、更新自定义字段,到目前为止一切正常。问题来了,在一个consolibyte库中我们定义了所有的actions
$map = array(QUICKBOOKS_MOD_DATAEXT => array( 'employee_custom_field_request',
'employee_custom_field_response',
'customer_custom_field_request',
'customer_custom_field_response'
)
现在,如果我只需要更新员工自定义字段,我将排队请求
$Queue = new QuickBooks_WebConnector_Queue('mysqli://username:password@localhost/quickbook'); $Queue->enqueue(QUICKBOOKS_MOD_DATAEXT, $id);
所以无论何时我 运行 Web 连接器都会调用客户和员工自定义字段请求和响应函数,那么我应该如何编码以仅调用特定实体函数(客户或员工)?或者在 consolibyte 库中有什么方法可以区分是谁的调用?
这里有几个选项 --
这些常量QUICKBOOKS_MOD_DATAEXT
完全是任意的。例如你可以这样做:
$Queue->enqueue('CustomFieldForCustomer', $id);
$Queue->enqueue('CustomFieldForEmployee', $another_id);
你可以在那里使用任何你想要的东西,只要你在调用 ->enqueue(...)
中的内容与你的 $map
中的内容相匹配。所以只要补一些新的常量。
另一种选择,是传入额外的附加数据。 例如:
$Queue->enqueue(QUICKBOOKS_MOD_DATAEXT, $your_id, null, array( 'this_is_for_a' => 'customer' );
然后当你的函数被调用时:
function CUSTOMER_OR_EMPLOYEE_custom_field_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents)
{
if ($extra['this_is_for_a'] == 'customer')
{
// ... do something for customers
}
else
{
// ... do something for employees
}
}
我正在使用 Web 连接器与 QuickBooks 桌面版进行通信,在 Web 端我正在使用 consolibyte https://github.com/consolibyte/quickbooks-php。现在我有一个用例,我需要使用客户和员工自定义字段。我能够插入、更新自定义字段,到目前为止一切正常。问题来了,在一个consolibyte库中我们定义了所有的actions
$map = array(QUICKBOOKS_MOD_DATAEXT => array( 'employee_custom_field_request',
'employee_custom_field_response',
'customer_custom_field_request',
'customer_custom_field_response'
)
现在,如果我只需要更新员工自定义字段,我将排队请求
$Queue = new QuickBooks_WebConnector_Queue('mysqli://username:password@localhost/quickbook'); $Queue->enqueue(QUICKBOOKS_MOD_DATAEXT, $id);
所以无论何时我 运行 Web 连接器都会调用客户和员工自定义字段请求和响应函数,那么我应该如何编码以仅调用特定实体函数(客户或员工)?或者在 consolibyte 库中有什么方法可以区分是谁的调用?
这里有几个选项 --
这些常量QUICKBOOKS_MOD_DATAEXT
完全是任意的。例如你可以这样做:
$Queue->enqueue('CustomFieldForCustomer', $id);
$Queue->enqueue('CustomFieldForEmployee', $another_id);
你可以在那里使用任何你想要的东西,只要你在调用 ->enqueue(...)
中的内容与你的 $map
中的内容相匹配。所以只要补一些新的常量。
另一种选择,是传入额外的附加数据。 例如:
$Queue->enqueue(QUICKBOOKS_MOD_DATAEXT, $your_id, null, array( 'this_is_for_a' => 'customer' );
然后当你的函数被调用时:
function CUSTOMER_OR_EMPLOYEE_custom_field_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $xml, $idents)
{
if ($extra['this_is_for_a'] == 'customer')
{
// ... do something for customers
}
else
{
// ... do something for employees
}
}