Категория Архиви: BDC

Бързо съвет: BDC ADF версия номера са си приятел

Ако вие сте ръчно кодиране ADF файлове и прави много от код/внос/изпитвателни цикли, Използвайте номера на версията, за да улесни живота ви.

Аз мразя да го призная, но докато тази седмица, Винаги бях изтриването на ADF и повторно импортиране на го. Това ще прекъсне ми колони за бизнес данни и правя me ре-тел ги. Всички ненужни.

Файл това под "това е очевидно, след като го виждате".

Пример:

<LobSystem
xmlns:XSi="HTTP://www.w3.org/2001/XMLSchema-instance" XSi:schemaLocation="HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Тип="Уеб услугата" Версия="1.2.0.0" Име="xyzzyDocumentReview" xmlns="HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Промяна на тази версия и повторен внос и съществуваща колона с бизнес данни използва актуализираната версия автоматично с не изисква допълнителна конфигурация.

</край>

Абонирайте се за моя блог.

Technorati тагове:

Разтвор: Избор на BDC показва само една колона с резултати

В моите Текущи опити за осигуряване на по-полезна справочна колона с помощта на BDC, Аз удари стената с избора на BDC. Ако не сте го видите, избора на BDC е подобен на избор на хората освен, че се работи с колони от тип "бизнес данни".

Имате достъп избор, като щракнете върху иконата на отворена книга на колона за бизнес данни както е показано:

Изображение

Горната снимка показва колона за бизнес данни, наречена "Master документ Id". Тази колона е свързана, чрез BDC, към уеб услуга. Уеб услугата връща две колони с информация: ИД на документ и заглавие. Бизнес цел тук е да се осигури "този документ се основава на" функция. Потребителите избират "магистър" документ и когато те спаси, получателят на събитието копира полетата за мета данни от посочения образец.

По подразбиране, избора на BDC изглежда като това, когато се търси за документ, чиито ID = "38":

clip_image002

Това е полезно, но не е достатъчно добър. Хората не мислят от гледна точка на идентификатори, те мислят заглавия и/или други мета данни. Избор ви позволява да търсите в други колони (e.g. Заглавие) но няма да се покаже действителния списък от заглавия, установено, просто си Идентификаторът е както е показано тук:

clip_image002[1]

(На екрана изстрел не е толкова голяма, защото аз не изберете търсене, която връща всички валидни резултати, но можете да видите, че ако е установил някои резултати, това само би показало Идентификаторът на, не заглавия).

Търсили висок и нисък за отговор на това и не е. Моят колега, преподобният Jonathan Брадшоу, са изправени и решават този проблем. Когато аз протегна ръка към него за помощ, Той ми посочи в правилната посока.

Конфигуриране на изписващия да покаже няколко колони чрез "ShowInPicker" имот в АПУ:

<Имоти Име="ShowInPicker" Тип="System.Boolean">вярно</Имоти>

По-подробно:

  <!-- Заглавие -->
  <TypeDescriptor TypeName="System.String" Име="Заглавие" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Заглавие</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Имоти>
      <Имоти Име="DisplayByDefault" Тип="System.Boolean">вярно</Имоти>
      <Имоти Име="ShowInPicker" Тип="System.Boolean">вярно</Имоти>
    </Имоти>
  </TypeDescriptor>

Задаването на това свойство въведе дребен проблем. Веднага след като сте го задали веднъж, трябва да го настроите за всяка колона, която искате да покажете. В моя случай, BDC picker показа Идентификаторът по подразбиране. Въпреки това, след като добавих "ShowInPicker" Заглавие, Идентификаторът не се показва. Аз решавам че чрез изрично установяване на свойството ShowInPicker за ИД на документ.

Тук е резултат:

Изображение

(Аз ще обясня странно изглеждащи "168 – CamlSchema.xsd" строителството в бъдеща блог пост. В кратко, Това е свръхдълги низ, който позволява за по малко по-добър потребителски опит).

Разбира се, като писмено този блог влизане, Аз просто Направих търсене за "ShowInPicker" и намерени множество хитове, включително този един: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Това обяснява смисъла на това свойство, както и някои други добри неща на BDC.

</край>

Абонирайте се за моя блог!

Technorati тагове:

Решение на КБД ADF внос недостатъчност: “Възникна следната грешка:”

Отново е изработване BDC ADF файлове на ръка (така че могат да изградят ми "Махни се от моравата ми!" CRED) и удари тази прекрасна грешка:

Изображение

"Приложение дефиниция неуспешно импортиране. Възникна следната грешка:"

Както можете да видите, там е грешка, Но … Тя е няма да ми кажете какво е.

В моя случай, проблема се оказа, че бях тръгнал на разстояние с функционални ADF за различен проект, свързан с база данни и изпълнява SQL заявка срещу изглед. В този нов проект, Аз призовавам метод на уеб услуга. Имах жилки на DB конкретни неща и добавя моя уеб услуга неща, но не успя да актуализира <LobSystem>на тип на атрибут. Аз шибалка то към "уеб услугата" и аз щастливо се премести към по-нови и по-вълнуващи внос грешки, които са били обработени в своевременно.

Тук е грешен LobSystem:

<LobSystem
xmlns:XSi =HTTP://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Тип = "база данни"
Версия = "1.0.0.0" Име = "xyzzy"
xmlns ="
HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Това е правилна:

<LobSystem
xmlns:XSi =HTTP://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Тип = "уеб услугата"
Версия = "1.0.0.0" Име = "xyzzy"
xmlns ="
HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</край>

Technorati тагове:

BDC изглежда жизнена заместител за заявки

АКТУАЛИЗИРАНЕ: Този MSDN постинг има някои интересни наблюдения от JXJ, въз основа на неговата, предимно отрицателни, опит става по този път: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Ние имаме бизнес сценарий, където трябва да свърже две библиотеки с документи чрез обща "ИД на документ" поле.

Ние често се използва справочна колона в сечива връзки като това. Има няколко недостатъци на колони за справки, три от които са:

  1. Само една колона от справка справка библиотеката могат да бъдат свързани.
  2. Производителност: Библиотека източник може да съдържа стотици записи. Това е твърде много записи в справката.
  3. Търсене: Там е не интегрирано търсене. Не искам да кажа в Мос смисъл на търсене, но няма начин за търсене / Филтриране по няколко колони от библиотеката на изходния документ и Намерете връзката, която искате.

Подкрепена от BDC, Ние можем да използваме "бизнес данни" тип колона и тя осигурява високо търсене и дори позволява няколко колони с данни, за да се появи в списъка изгледи.

Аз съм имал някои предварителни успех с този подход и намерение да пиша повече за това.

Ако сте работили този ъгъл преди и има някакви коментари, Моля, Споделете!

</край>

Technorati тагове:

Решение за КБД грешка при импортиране: “Не може да зареди тип, описан от TypeDescriptor на TypeName …”

Аз бях работа с BDC днес, ADF файлове за кодиране на ръка и генериране на себе си някои грешки. Една такава грешка:

Неуспешно импортиране на дефиниция на приложението. Възникна следната грешка: Не може да зареди тип, описан от TypeDescriptor на TypeName. Име на параметър: typeName грешка възникна в или точно преди линия: "35’ и позиция: "20".

Мос показва тази грешка, когато аз се опитах да импортиране на ADF XML файл.

Аз проучени Internets и е установено, че бях съотнасяне името на екземпляр на LOB (от <LobSystemInstance>) в моя <TypeDescriptor> възел, когато трябва да са посочени името на LOB, самата (от <LobSystem>).

Грешен:

<TypeDescriptor TypeName="Conchango.KeyValue, Име на екземпляр на LOB" Име = "KeyValue">

Коригиране на:

<TypeDescriptor TypeName="Conchango.KeyValue, Име на LOB" Име = "KeyValue">

Надежда този един спасявам някой, един час или два от време.

</край>

Абонирайте се за моя блог!

Technorati тагове:

BDC runtime грешка обяснено

Аз предизвиква грешка на BDC тази седмица, който се проявява в потребителския интерфейс и в 12 кошер регистър по време на изпълнение.

Първо, Това се появява в потребителския интерфейс:

Не можа да намери полета за вмъкване на всички стойности на идентификатора, за да се изпълни правилно MethodInstance на SpecificFinder с име … Осигуряване на входните параметри имат TypeDescriptor, асоциирани с всеки идентификатор, дефиниран за този обект.

Тук е параван сачми:

clip_image001

Аз също може да доведе до това съобщение да се появи в 12 кошер регистър в ще (използвайки моя патентована high-tech-don't-try-this-at-home "мистериозни грешки" метод):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server бизнес данни 6q4x високо изключение в BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Стойността на идентификатор ”, от тип ”, е невалиден. Очакваната стойност на идентификатор на тип "System.String". в Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Обект[] subIdentifierValues, LobSystemInstance lobSystemInstance) в Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Обект обект, Обект[] userValues, LobSystemInstance lobSystemInstance) в Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Преглед desiredView) в Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() в Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Търсих около и намери някои води в MSDN форум, но те не са достатъчно за мен да се разбере какво правя грешно. Гледах webcast от Тед Pattison че ми компанията има squirreled на сървър и дойде да осъзнават проблема ми.

В моя ADF, Аз съм свързване към SQL база данни, както е показано:

            <Имоти Име="RdbCommandText" Тип="System.String">
              <![НЕЗАТВОРЕН[
                ИЗБЕРЕТЕ SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      СТРАНА, ИНФОРМАЦИОННИТЕ И КОМУНИКАЦИОННИ ТЕХНОЛОГИИ1, АДРЕС2, ADDRESS3, ADDRESS4, ГРАД, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      ОКРЪГ, ДЪРЖАВА, ПОЩЕНСКИ, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, ТЕЛЕФОН, РАЗШИРЕНИЕ, ФАКС, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG от dbo.PS_CARRIER_ID_VW с (nolock)
                КЪДЕТО
                  (SETID <> "ДЯЛ") и
                  (Долна(CARRIER_ID) >= по-ниска(@MinId)) и
                  (Долна(CARRIER_ID) <= по-ниска(@MaxId)) и
                  (Долна(DESCR) КАТО по-ниски(@InputDescr))
                ]]>
            </Имоти>

Е при условие че SQL от DBA човек и аз съм дал да се разбере, че това е Специални Изглед, те създават само за мен. Уникален ключ там е CARRIER_ID.

Тук е бъг, представих:

      <Идентификатори>
        <Идентификатор Име="CARRIER_ID" TypeName="System.String" />
        <Идентификатор Име="DESCR" TypeName="System.String" /> 
</Идентификатори>

Някъде по линията, Бих успяла да обърка себе си по смисъла на <Идентификатори> и добавя DESCR, въпреки че тя не е всъщност идентификатор. Взех DESCR на идентификатори набор и престо! Всичко работи.

I hope this saves someone some grief 🙂

Technorati тагове: , , ,

BDC ADF и вашият приятел, НЕЗАТВОРЕН

Забелязал съм, някои неудобни и ненужни ръчно кодиране на RdbCommandText в някои примери (включително MSDN документация).

Исках да подчертая, на новодошлите в КБД, че команди може да бъде обвит във вътрешността на CDATA етикет в естествените им"" формуляр. Така, тази неудобна конструкция:

<Имоти Име="RdbCommandText" Тип="System.String">
Изберете dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement от dbo.MCRS_SETTLEMENT
КЪДЕТО (ИД &gt;= @MinId) И (ИД &lt;= @MaxId)
</Имоти>

могат да се представят по-добре по този начин:

<Имоти Име="RdbCommandText" Тип="System.String">
<![НЕЗАТВОРЕН[
Изберете dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement от dbo.MCRS_SETTLEMENT
КЪДЕТО (ИД >= @MinId) И (ИД <= @MaxId)
]]>
</Имоти>

</край>

BDC грунд

Интрото на BDC

Функционални пример: BDC ADF, който се свързва към SQL база данни с вградени потребителски ИД и парола

Трябваше да завивайте Мос в SQL база данни чрез BDC. За целите на изпитване/POC, Исках да вградите на SQL сметка потребител id и парола в ADF. Започвайки с този шаблон (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Съм създал ADF, който се свързва към конкретен екземпляр на SQL сървър и логове с конкретен потребител id и парола и показва в този фрагмент:

  <Екземпляри LobSystemInstance>
    <LobSystemInstance Име="ClaimsInstance">
      <Имоти>
        <Имоти Име="AuthenticationMode" Тип="System.String">Еднократно прокарване</Имоти>
        <Имоти Име="DatabaseAccessProvider" Тип="System.String">SqlServer</Имоти>
        <Имоти Име="RdbConnection данни източник" Тип="System.String">действителните serveractual екземпляр</Имоти>
        <Имоти Име="RdbConnection първоначален каталог" Тип="System.String">Действителен начален каталог</Имоти>
        <Имоти Име="RdbConnection интегрирана сигурност" Тип="System.String">SSPI</Имоти>
        <Имоти Име="RdbConnection обединяване" Тип="System.String">фалшиви</Имоти>

        <!-- Това са основните ценности: -->
        <Имоти Име="RdbConnection потребителски Идентификатор" Тип="System.String">аъведете потребителски Идентификатор</Имоти>
        <Имоти Име="RdbConnection парола" Тип="System.String">действителен парола</Имоти>
        <Имоти Име="RdbConnection Trusted_Connection" Тип="System.String">фалшиви</Имоти>

      </Имоти>
    </LobSystemInstance>
  </Екземпляри LobSystemInstance>

Това не е най-добрата практика, но това е полезно за бърза и проста конфигурация за изпитване. Това беше изненадващо трудно да разбера. Аз никога основавам функционална например с ключови думи за търсене:

  • ADF вградени потребителско име и парола
  • вграждане на потребителски ИД и парола в adf
  • вграждане на потребителски ИД и парола в adf bdc
  • SharePoint bdc грунд
  • SharePoint вградите потребителски ИД и парола в adf

</край>

Абонирайте се за моя блог.