ארכיון קטגוריה: BDC

עצה מהירה: מספרי גירסה BDC ADF החברים שלך

אם אתה את היד קידוד ב- ADF קבצים ועושה הרבה מחזורים קוד/ייבוא/בדיקות, השתמש במספר הגירסה כדי להקל את החיים שלך.

אני שונאת להודות בכך, אבל עד השבוע, הייתי תמיד מחיקת ה-ADF ולא ייבוא מחדש של זה. זה לשבור את עמודות הנתונים העסקיים ולגרום לי מברק אותם מחדש. הכל מיותר.

להגיש את זה תחת "זה ברור ברגע שאתה רואה את זה".

דוגמה:

<LobSystem
xmlns:xsi="http://www.w3.org/ 2001/סכימת Xml-מופע" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" סוג="WebService" גירסה="1.2.0.0" שם="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

לשנות את הגירסה ואת לייבא מחדש ומשתמש קיימת עמודה של נתונים עסקיים גירסה מעודכנת באופן אוטומטי עם לא נדרשת קביעת תצורה נוספים.

</קצה>

מנוי על הבלוג שלי.

תגיות טכנורטי:

פתרון: דוגם BDC מראה עמודה אחת בלבד של תוצאות

ניסיונות מתמשך לספק עמודת בדיקת מידע שימושי יותר באמצעות BDC, נתקלתי בקיר עם דוגם BDC. אם אתה לא רואה את זה, דוגם BDC דומה בורר האנשים פרט לכך הוא עובד עם עמודות מסוג "נתונים עסקיים".

גישה דוגם על-ידי לחיצה על הסמל של ספר פתוח של עמודה של נתונים עסקיים כפי שמוצג:

התמונה

התמונה לעיל מראה עמודה של נתונים עסקיים שנקרא "מאסטר מסמך מזהה". עמודה זו מחובר, דרך BDC, לשירות אינטרנט. ששירות האינטרנט מחזיר שתי עמודות של מידע: מסמך מזהה וכותרת. מטרת העסק היא לספק "מסמך זה מבוסס על" פונקציה. משתמשים בחר מאסטר"" המסמך ולשמור כאשר הם, מקלט אירוע מעתיקה meta שדות נתונים מתבנית הבסיס שאליו בוצעה הפניה.

כברירת מחדל, דוגם BDC של נראה כמו זה בעת חיפוש עבור מסמך שהמזהה שלה = "38":

clip_image002

. זה עוזר, אבל לא מספיק טוב. אנשים לא חושבים במונחים של תעודות זהות, הם חושבים במונחים של כותרים ו/או נתונים אחרים meta. דוגם מאפשרת לך לחפש על עמודות אחרות (המסופקים. כותרת) . אבל לא תוכל להציג את רשימת כותרות שזה נמצא בפועל, רק DocId שלהם הוא כפי שמוצג כאן:

clip_image002[1]

(צילום מסך לא כל כך גדול כי ריה, חיפוש תוצאות חוקי, אבל אתה יכול לראות את זה. אם מצא כמה תוצאות, זה היה רק מופיע של DocId, לא כותרות).

גבוה ונמוך חיפש תשובה לכך ונכשלתי. עמיתי, הנערץ ג'ונתן בראדשו, היה בפני ופתר את הבעיה. כאשר אני הושיט אליו לעזרה, הוא הסביר לי הכיוון הנכון.

להגדיר את בוחר להציג עמודות מרובות באמצעות ShowInPicker"" מאפיין ב- ADF:

<רכוש שם="ShowInPicker" סוג="System.Boolean">נכון</רכוש>

בפירוט רב יותר:

  <!-- כותרת -->
  <TypeDescriptor TypeName="System.String" שם="כותרת" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">כותרת</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <מאפייני>
      <רכוש שם="DisplayByDefault" סוג="System.Boolean">נכון</רכוש>
      <רכוש שם="ShowInPicker" סוג="System.Boolean">נכון</רכוש>
    </מאפייני>
  </TypeDescriptor>

הגדרת מאפיין זה להציג בעיה קלה. ברגע שתציב אותו פעם אחת, כדי להגדיר את זה עבור כל עמודה שאתה רוצה להראות. במקרה שלי, דוגם BDC הראה DocId כברירת מחדל. עם זאת, פעם הוספתי "ShowInPicker" הכותרת, DocId אינו מוצג עוד. . פתרתי את זה במפורש הגדרת המאפיין ShowInPicker מזהה דוק.

הנה התוצאה:

התמונה

(אני אסביר את המוזר "168 – CamlSchema.xsd" בנייה בפוסט בבלוג בעתיד. בקיצור, זוהי מחרוזת משורשרת המאפשר חוויית משתמש משופרת במקצת).

בטח, לאחר שכתב את הפוסט בבלוג הזה, . עשיתי חיפוש אחר "ShowInPicker" ומצאתי להיטים רבים, כולל זה: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. זה מסביר את המשמעות של הנכס הזה יחד עם אחרים BDC חומר טוב.

</קצה>

מנוי על הבלוג שלי!

תגיות טכנורטי:

פתרון לכשל ייבוא של BDC מזין מסמכים אוטומטי: “אירעה השגיאה הבאה:”

אני שוב היה קוצו קבצים BDC מזין מסמכים אוטומטי באופן ידני (כך ניתן לבנות שלי "עופו מהדשא שלי!" קרד) והכה שגיאה זו מקסימה:

התמונה

"יישום ההגדרה שהייבוא נכשל. אירעה השגיאה הבאה:"

כפי שניתן לראות, קיימת שגיאה, אבל … זה לא הולך לספר לי מה זה.

במקרה שלי, הנושא התברר כי היה. התחלתי עם ADF פונקציונלי לפרויקט שונה מחובר למסד נתונים, ביצוע בשאילתת SQL מול נוף. לפרוייקט חדש, אני מתקשר לפעולת שירות אינטרנט. היה לי הוסרו החומר הספציפי DB, הוסיף את הדברים שירות האינטרנט שלי, . אבל לא הצליח לעדכן <LobSystem>של תכונה type. שיניתי את זה כדי "WebService" באושר עברתי שגיאות ייבוא חדשה יותר, מרגש יותר, אשר שטופלו בבוא הזמן.

. הנה LobSystem הלא נכון:

<LobSystem
xmlns:xsi =http://www.w3.org/ 2001/סכימת Xml-מופע
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/סכימת Xml-מופע
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
סוג = "WebService"
גירסה = "1.0.0.0" שם = "xyzzy ב"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</קצה>

תגיות טכנורטי:

BDC נראה תחליף בר-קיימא עבור בדיקות

עדכון: זה פרסום MSDN יש כמה תצפיות מעניינות מן JXJ בהתבסס על שלו, בעיקר שלילי, חוויות לרדת על נתיב זה: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

יש לנו תרחישים עסקיים בהם אנו זקוקים לקשר שני מסמכים בספריות דרך נפוצה "מזהה מסמך" שדה.

אנו מרבים להשתמש עמודת בדיקת מידע לקישורים סככה כזאת. ישנם מספר חסרונות על עמודות בדיקת מידע, שלושה מהם:

  1. עמודה אחת בלבד מתוך ספריית בדיקת בדיקת מידע יכולים להיות מקושרים.
  2. ביצועים: ספריית מקור יכול להכיל מאות ערכים. . זה יותר מדי ערכים בבדיקת המידע.
  3. חיפוש: יש חיפוש משולב. אני לא מתכוון במובן מוס של חיפוש, אבל אין סיכוי לחפש / לסנן עמודות מרובות מספריית המסמכים המקור ולאתר את הקישור שהרצוי.

מגובה על ידי BDC, אנחנו יכולים להשתמש נתונים עסקיים "" סוג עמודה וזה מספק חיפוש מעולה, ואף מאפשר מספר עמודות של נתונים יופיעו תצוגות רשימה.

היתה קצת הצלחה ראשונית עם גישה זו, ואני מתכננת לכתוב על זה עוד.

אם אתה עובד זווית זו לפני ויש לך הערות כלשהן, בבקשה לשתף!

</קצה>

תגיות טכנורטי:

פתרון BDC שגיאת ייבוא: “לא היתה אפשרות לטעון את הסוג המתואר על-ידי TypeName של TypeDescriptor …”

אני עובד עם BDC היום, קידוד קבצים ב- ADF בעבודת יד ותפיק את עצמי כמה שגיאות. שגיאה אחת כזו:

ייבוא הגדרת היישום נכשלה. אירעה השגיאה הבאה: לא היתה אפשרות לטעון את הסוג המתואר על-ידי TypeName של TypeDescriptor. שם פרמטר: typeName שגיאה אירעה ב או ממש לפני קו: ' 35’ ומיקום: "20".

מוס מוצגת שגיאה זו כאשר ניסיתי לייבא את קובץ ה-XML ב- ADF.

למצות את חקר ומצא כי לא שם המופע LOB (מ <LobSystemInstance>) בבית שלי <TypeDescriptor> צומת כאשר צריך להפנות אליו את שם LOB עצמו (מ <LobSystem>).

הלא נכון:

<TypeDescriptor TypeName="Conchango.KeyValue, שם מופע LOB" שם = "KeyValue">

לתקן:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB שם" שם = "KeyValue">

מקווה שזה חוסך מישהו שעה או שעתיים של זמן.

</קצה>

מנוי על הבלוג שלי!

תגיות טכנורטי:

שגיאת זמן ריצה BDC הסביר

אני גרמתי שגיאת BDC השבוע זה בא לידי ביטוי בממשק המשתמש ואת 12 כוורת רישום בזמן ריצה.

הראשונה, זה הופיע בממשק המשתמש:

לא היתה אפשרות למצוא שדות כדי להוסיף את כל הערכים מזהה לבצע כהלכה SpecificFinder MethodInstance עם שם … להבטיח שפרמטרים של קלט יש TypeDescriptors הקשורים עם כל המזהה מוגדר עבור ישות זו.

הנה צילום מסך:

clip_image001

אני יכול לגרום גם הודעה זו תופיע 12 כוורת רישום-יהיה (שימוש high-tech-don't-try-this-at-home פטנט שלי "שגיאות מסתורי" שיטה):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0SharePoint Portal Server נתונים עסקיים x0B8C 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, אבל הם לא היו מספיק בשבילי להבין מה אני עושה לא בסדר. ראיתי שידור אינטרנט על-ידי טד פטיסון . זה שלי החברה יש מוסתרת בשרת, הגיע כדי להבין את הבעיה שלי.

ב- ADF שלי, אני מתחבר מסד נתונים של SQL כמוצג:

            <רכוש שם="RdbCommandText" סוג="System.String">
              <![CDATA[
                בחר SETID, CARRIER_ID, EFFDT, לתאר, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      מדינה, כתובת1, ADDRESS2, 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)) ו
                  (נמוך יותר(לתאר) כמו התחתון(@InputDescr))
                ]]>
            </רכוש>

אני היה סיפק את SQL מאדם DBA, שאני נותן להבין כי זה מיוחד תצוגה שהם יצרו רק בשבילי. המפתח הייחודי שם הוא CARRIER_ID.

כאן הוא באג הצגתי:

      <מזהי>
        <המזהה שם="CARRIER_ID" TypeName="System.String" />
        <המזהה שם="לתאר" TypeName="System.String" /> 
</מזהי>

איפשהו לאורך הקו, אני הצליח לבלבל את עצמי על המשמעות של <מזהי> והוסיף לתאר למרות שזה לא באמת מזהה. שהוצאתי מתארת מזהי קבוצה, ופרסטו! הכל עבד.

אני מקווה שזה יחסוך למישהו קצת צער 🙂

BDC ADF והחבר שלך, CDATA

. שמתי קצת מביך ומיותר יד-קידוד של RdbCommandText בדוגמאות (לרבות תיעוד MSDN).

רציתי לציין ומוניטין BDC כי פקודות יכול להיות עטוף בתוך תג CDATA הטבעי"" טופס. כל כך, הבנייה מביך:

<רכוש שם="RdbCommandText" סוג="System.String">
Dbo בחר.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement של dbo.MCRS_SETTLEMENT
איפה (מזהה &gt;= @MinId) ו (מזהה &lt;= @MaxId)
</רכוש>

יכול להיות מיוצג יותר טוב בדרך הזו:

<רכוש שם="RdbCommandText" סוג="System.String">
<![CDATA[
Dbo בחר.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement של dbo.MCRS_SETTLEMENT
איפה (מזהה >= @MinId) ו (מזהה <= @MaxId)
]]>
</רכוש>

</קצה>

פריימר BDC

מבוא BDC

דוגמה פונקציונלית: מזין אוטומטי של BDC מתחבר למסד נתונים SQL עם וסיסמת המשתמש מוטבע

הייתי צריך לחווט מוס למסד נתונים של SQL באמצעות BDC. למטרות בדיקה/POC, רציתי להטביע את SQL חשבון מזהה משתמש וסיסמה ב- ADF. החל תבנית זו (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), יצרתי על ADF מתחבר מקרה ספציפי של שרת SQL, נכנס עם מזהה משתמש ספציפי שם וסיסמה, שמוצג מקטע הזה:

  <LobSystemInstances>
    <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">שלctual מזהה משתמש</רכוש>
        <רכוש שם="סיסמה RdbConnection" סוג="System.String">סיסמה בפועל</רכוש>
        <רכוש שם="RdbConnection Trusted_Connection" סוג="System.String">שווא</רכוש>

      </מאפייני>
    </LobSystemInstance>
  </LobSystemInstances>

. זה לא עבודה מומלצת, אבל זה שימושי עבור תצורת בדיקה מהירה ופשוטה. זה היה מפתיע שקשה להבין.. מעולם לא מצאתי דוגמא פונקציונלי עם מילות מפתח לחיפוש:

  • ב- adf מוטבע וסיסמת
  • להטביע מזהה משתמש וסיסמה ב- adf
  • להטביע מזהה משתמש וסיסמה ב- bdc ב- adf
  • sharepoint bdc פריימר
  • sharepoint להטביע מזהה משתמש וסיסמה ב- adf

</קצה>

מנוי על הבלוג שלי.