אני גרמתי שגיאת BDC השבוע זה בא לידי ביטוי בממשק המשתמש ואת 12 כוורת רישום בזמן ריצה.
הראשונה, זה הופיע בממשק המשתמש:
לא היתה אפשרות למצוא שדות כדי להוסיף את כל הערכים מזהה לבצע כהלכה SpecificFinder MethodInstance עם שם … להבטיח שפרמטרים של קלט יש TypeDescriptors הקשורים עם כל המזהה מוגדר עבור ישות זו.
הנה צילום מסך:
אני יכול לגרום גם הודעה זו תופיע 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" />
</מזהי>
איפשהו לאורך הקו, אני הצליח לבלבל את עצמי על המשמעות של <מזהי> והוסיף לתאר למרות שזה לא באמת מזהה. שהוצאתי מתארת מזהי קבוצה, ופרסטו! הכל עבד.
אני מקווה שזה יחסוך למישהו קצת צער 🙂
פייטר, אתה כנראה במפקדה פתרת את זה עד עכשיו, אבל הניחוש שלי הוא כי זה להיות קשור ההגדרה לאורך כל הדרך. אולי השדה SQL עצמו הוא מוגבל 60 תווים? . משהו כזה?
היי,
יש לי בעיה עם BDC, ואני תוהה אם אתה יכול לעזור עם זה?
אני משתמש שני שדות identifiier ( מספר ואת שדה תיאור), כל פעם עולה על המספר הכולל של תווים 60 אני מקבל את השגיאות foollowing:
ערך טקסט לא חוקי
שדה טקסט מכיל נתונים לא חוקיים. נא לבדוק את הערך ונסה שוב.
? את מבינה לאן זה להגביל של 60 תווים נובע? וכיצד לתקן את הבעיה?
כיום אני אני מגביל את תיאור כזה שיאפשר את המספר הכולל של תווים לא יחרוג 60.