iPhone Activesyn c для контактов Outlook "другие" номера телефонов не синхронизируются - PullRequest
0 голосов
/ 24 января 2020

Я нашел исправление, которое пытался запустить, но у меня возникли проблемы. Когда я вхожу во вторую строку в Powershell, я получаю сообщение об ошибке ниже. У меня есть несколько контактных записей, которые синхронизируются c через sf.com в outlook, но я не уверен, что это проблема. Если вы можете помочь мне исправить команду, я могу изменить эти записи с «Другое» на поле телефона, которое iphone (Activesynce) будет синхронизировать c, как на мобильном телефоне или пейджере. Я не хочу, чтобы он заменял текущий номер мобильного телефона, просто классифицируйте его. Спасибо!

$outlook = new-object -com outlook.application
$contacts = $outlook.Session.GetDefaultFolder(10)
$contacts.Items | % { if($_.MobileTelephoneNumber -eq "") { $_.MobileTelephoneNumber = $_.OtherTelephoneNumber; $_.OtherTelephoneNumber = ""; $_.save() } }

ОШИБКА

Вы не можете вызвать метод для выражения с нулевым значением. В строке: 1 символ: 1 + $ OutlookContacts = $ Outlook.session.GetDefaultFolder (10) .items + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

1 Ответ

0 голосов
/ 25 января 2020

Террор довольно специфичен c.

Нуль означает Ноль. / С ним не с чем работать.

Не догадайся об этом (ну, мы все иногда так делаем ... ; -} - но не надейся не превращайте это в привычку.), поскольку вы просто излишне расстраиваете себя, так как это приводит к большому количеству ненужных выдергиваний волос, и у меня не осталось волос, ооо, вы знаете, что я имею в виду.

Always dev вы кодируете шаги, чтобы убедиться, что вы получаете то, что ожидаете. Таким образом, нет необходимости переходить к следующему шагу, пока активная строка / блок не будет действительным.

Пример (использование сжатия переменных для назначения результатов и вывода на экран)

($outlook = new-object -com outlook.application)

# Results
<#
Application        : Microsoft.Office.Interop.Outlook.ApplicationClass
Class              : olApplication
Session            : Microsoft.Office.Interop.Outlook.NameSpaceClass
Parent             : 
Assistant          : 
Name               : Outlook
Version            : 16.0.0.12325
...
PickerDialog       : System.__ComObject
#>


($contacts = $outlook.Session.GetDefaultFolder(10))

# Results
<#
Application            : Microsoft.Office.Interop.Outlook.ApplicationClass
Class                  : 2
Session                : Microsoft.Office.Interop.Outlook.NameSpaceClass
Parent                 : System.__ComObject
DefaultItemType        : 2
DefaultMessageClass    : IPM.Contact
...
#>

$contacts.Items

# Results
<#
Application                  : Microsoft.Office.Interop.Outlook.ApplicationClass
Class                        : 40
Session                      : System.__ComObject
Parent                       : System.__ComObject
Actions                      : System.__ComObject
Attachments                  : System.__ComObject
BillingInformation           : 
Body                         : 
Categories                   : 
...
#>

$contacts.Items | 
% { 
    if($_.MobileTelephoneNumber -eq '') 
    {
        "MobileTelephoneNumber: $($PSItem.MobileTelephoneNumber)"
        "OtherTelephoneNumber: $($PSItem.OtherTelephoneNumber)"
        <#
        $_.MobileTelephoneNumber = $_.OtherTelephoneNumber 
        $_.OtherTelephoneNumber = '' 
        $_.save() 
        #>
    } 
} | Select-Object -First 20

# Results
<#
MobileTelephoneNumber: 
OtherTelephoneNumber: 
...
MobileTelephoneNumber: 
OtherTelephoneNumber: (800) 555-1212 ,,,4472
...
#>
...