版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
MicrosoftDynamics365:Dynamics365集成與開發(fā)基礎(chǔ)1Dynamics365概覽1.1Dynamics365的核心組件Dynamics365是一個由Microsoft提供的集成業(yè)務(wù)應(yīng)用程序套件,旨在幫助組織優(yōu)化其銷售、客戶服務(wù)、現(xiàn)場服務(wù)、財務(wù)、供應(yīng)鏈、營銷和運營流程。它通過將CRM(客戶關(guān)系管理)和ERP(企業(yè)資源規(guī)劃)功能結(jié)合在一個平臺上,提供了全面的業(yè)務(wù)解決方案。Dynamics365的核心組件包括:Sales(銷售):管理銷售流程,從潛在客戶到交易完成,提供銷售預(yù)測、客戶分析和銷售自動化工具。CustomerService(客戶服務(wù)):提供客戶服務(wù)案例管理、知識庫、自助服務(wù)門戶和客戶服務(wù)分析,以提高客戶滿意度。FieldService(現(xiàn)場服務(wù)):管理現(xiàn)場服務(wù)操作,包括調(diào)度、資源管理、預(yù)防性維護(hù)和移動工作流。Finance(財務(wù)):處理財務(wù)會計、預(yù)算、成本控制和財務(wù)報告,提供實時財務(wù)洞察。SupplyChainManagement(供應(yīng)鏈管理):管理采購、庫存、生產(chǎn)、物流和分銷,優(yōu)化供應(yīng)鏈效率。Marketing(營銷):提供營銷自動化、活動管理、客戶參與和營銷分析,以增強營銷策略。Operations(運營):監(jiān)控和管理業(yè)務(wù)運營,包括生產(chǎn)、庫存和訂單處理,確保業(yè)務(wù)流程的順暢。每個組件都設(shè)計為獨立運行,但也可以無縫集成,以提供一個統(tǒng)一的業(yè)務(wù)管理平臺。這種靈活性使得Dynamics365能夠適應(yīng)各種規(guī)模和行業(yè)的企業(yè)需求。1.2Dynamics365的工作流與自動化Dynamics365的工作流與自動化功能是其強大業(yè)務(wù)流程管理的關(guān)鍵。這些功能允許用戶創(chuàng)建和執(zhí)行自動化流程,以提高效率、減少錯誤并確保一致性。工作流可以被設(shè)計為響應(yīng)特定事件,如創(chuàng)建新記錄、更新現(xiàn)有記錄或達(dá)到特定條件時觸發(fā)。1.2.1工作流示例假設(shè)我們正在使用Dynamics365的CustomerService組件,我們希望自動化處理客戶投訴的流程。以下是一個使用Dynamics365工作流創(chuàng)建自動化流程的示例:工作流名稱:自動分配客戶投訴
觸發(fā)條件:當(dāng)新投訴記錄創(chuàng)建時
步驟:
1.檢查投訴類型。
2.根據(jù)類型將投訴分配給相應(yīng)的團(tuán)隊。
3.發(fā)送電子郵件通知給負(fù)責(zé)團(tuán)隊。
4.設(shè)置投訴解決的截止日期。1.2.2代碼示例雖然Dynamics365的工作流通常在圖形界面中創(chuàng)建,但也可以使用PowerAutomate或通過代碼進(jìn)行更復(fù)雜的自動化。以下是一個使用C#調(diào)用Dynamics365WebAPI來創(chuàng)建和更新記錄的示例:usingSystem;
usingSystem.Net.Http;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingNewtonsoft.Json;
namespaceDynamics365Automation
{
classProgram
{
staticasyncTaskMain(string[]args)
{
varclient=newHttpClient();
varurl="/api/data/v9.1/incidents";
varjson=JsonConvert.SerializeObject(new
{
title="客戶投訴:產(chǎn)品故障",
description="客戶報告產(chǎn)品在使用一周后出現(xiàn)故障。",
status="新"
});
varcontent=newStringContent(json,Encoding.UTF8,"application/json");
varresponse=awaitclient.PostAsync(url,content);
if(response.IsSuccessStatusCode)
{
Console.WriteLine("投訴記錄已成功創(chuàng)建。");
}
else
{
Console.WriteLine($"創(chuàng)建投訴記錄失敗,狀態(tài)代碼:{response.StatusCode}");
}
}
}
}1.2.3解釋在上述代碼示例中,我們使用了C#和HttpClient類來調(diào)用Dynamics365的WebAPI。首先,我們定義了API的URL,然后使用Newtonsoft.Json庫將投訴信息序列化為JSON格式。接著,我們創(chuàng)建了一個StringContent對象來承載JSON數(shù)據(jù),并使用HttpClient的PostAsync方法將數(shù)據(jù)發(fā)送到Dynamics365。如果請求成功,控制臺將輸出一條成功消息;否則,將輸出失敗狀態(tài)代碼。1.2.4自動化工具除了工作流,Dynamics365還提供了PowerAutomate(以前稱為MicrosoftFlow)作為自動化工具。PowerAutomate允許用戶創(chuàng)建更復(fù)雜的自動化流程,包括跨多個應(yīng)用程序和服務(wù)的集成。例如,可以創(chuàng)建一個流程,當(dāng)Dynamics365中的銷售機會達(dá)到特定階段時,自動在SharePoint中創(chuàng)建一個文檔,或在Outlook中發(fā)送一封電子郵件。1.2.5結(jié)論Dynamics365的工作流與自動化功能是其業(yè)務(wù)流程管理能力的核心。通過使用這些工具,企業(yè)可以創(chuàng)建響應(yīng)特定事件的自動化流程,從而提高效率、減少錯誤并確保業(yè)務(wù)流程的一致性。無論是通過圖形界面創(chuàng)建簡單的工作流,還是使用PowerAutomate或代碼實現(xiàn)更復(fù)雜的自動化,Dynamics365都提供了強大的工具來支持企業(yè)的自動化需求。請注意,上述代碼示例和工作流示例是基于假設(shè)場景創(chuàng)建的,實際應(yīng)用中可能需要根據(jù)具體環(huán)境和需求進(jìn)行調(diào)整。Dynamics365的功能和API會定期更新,因此在實施自動化流程時,建議參考最新的官方文檔和指南。2環(huán)境設(shè)置與管理2.1創(chuàng)建與配置Dynamics365環(huán)境在開始Dynamics365的集成與開發(fā)之前,首要任務(wù)是創(chuàng)建并配置一個適合開發(fā)和測試的環(huán)境。這包括了環(huán)境的創(chuàng)建、配置以及必要的設(shè)置,以確保開發(fā)流程的順利進(jìn)行。2.1.1創(chuàng)建環(huán)境登錄PowerPlatformAdminCenter:登錄到PowerPlatformAdminCenter,使用您的Microsoft賬戶。選擇“環(huán)境”:在左側(cè)菜單中,選擇“環(huán)境”選項。創(chuàng)建新環(huán)境:點擊“新建環(huán)境”,選擇環(huán)境類型(如開發(fā)、測試或生產(chǎn)),并指定環(huán)境的名稱和描述。配置環(huán)境:在創(chuàng)建環(huán)境后,您需要配置環(huán)境的詳細(xì)設(shè)置,包括區(qū)域、貨幣、語言等。2.1.2配置環(huán)境配置環(huán)境涉及多個方面,包括但不限于:區(qū)域設(shè)置:確定環(huán)境的地理位置,這將影響數(shù)據(jù)存儲和處理的法規(guī)遵從性。貨幣和語言:設(shè)置環(huán)境的默認(rèn)貨幣和語言,以適應(yīng)您的業(yè)務(wù)需求。安全設(shè)置:配置安全策略,如數(shù)據(jù)加密、網(wǎng)絡(luò)訪問控制等。集成設(shè)置:設(shè)置與外部系統(tǒng)的集成,如API連接、數(shù)據(jù)流等。2.1.3示例:使用PowerShell創(chuàng)建環(huán)境#導(dǎo)入必要的PowerShell模塊
Import-ModuleMicrosoft.PowerApps.Admin
#設(shè)置環(huán)境的參數(shù)
$environmentName="DevEnvironment"
$environmentDescription="用于開發(fā)和測試的環(huán)境"
$environmentType="Developer"
$language="en-US"
$currency="USD"
$region="UnitedStates"
#創(chuàng)建環(huán)境
New-AdminEnvironment-Name$environmentName-Description$environmentDescription-Type$environmentType-Language$language-Currency$currency-Region$region此PowerShell腳本示例展示了如何創(chuàng)建一個名為DevEnvironment的開發(fā)環(huán)境,其描述為“用于開發(fā)和測試的環(huán)境”,并配置了語言、貨幣和區(qū)域。2.2管理用戶與安全在Dynamics365中,用戶管理和安全控制是確保數(shù)據(jù)安全和合規(guī)性的關(guān)鍵。這包括用戶賬戶的創(chuàng)建、角色分配以及訪問權(quán)限的管理。2.2.1創(chuàng)建用戶賬戶登錄Dynamics365:使用管理員賬戶登錄到Dynamics365。選擇“設(shè)置”>“安全”>“用戶”:在左側(cè)菜單中,依次選擇“設(shè)置”>“安全”>“用戶”。創(chuàng)建新用戶:點擊“新建”,輸入用戶信息,如姓名、電子郵件和密碼。分配許可證:選擇適當(dāng)?shù)腄ynamics365許可證,以確保用戶可以訪問所需的功能。2.2.2分配角色和權(quán)限選擇“設(shè)置”>“安全”>“團(tuán)隊”或“角色”:根據(jù)需要,選擇團(tuán)隊或角色來管理用戶權(quán)限。創(chuàng)建或編輯角色:定義角色的權(quán)限,包括讀取、寫入、創(chuàng)建和刪除數(shù)據(jù)的能力。分配角色給用戶:選擇用戶,然后分配一個或多個角色,以控制其訪問權(quán)限。2.2.3示例:使用PowerShell分配角色#導(dǎo)入必要的PowerShell模塊
Import-ModuleMicrosoft.PowerApps.Admin
#設(shè)置用戶和角色的參數(shù)
$userEmail="user@"
$roleName="SystemAdministrator"
#獲取用戶
$user=Get-AdminUser-Email$userEmail
#獲取角色
$role=Get-AdminRole-Name$roleName
#分配角色給用戶
Set-AdminUserRole-UserId$user.Id-RoleIds$role.Id此PowerShell腳本示例展示了如何為電子郵件地址為user@的用戶分配“SystemAdministrator”角色。通過這種方式,可以確保用戶具有管理Dynamics365環(huán)境的必要權(quán)限。2.2.4安全策略除了用戶管理和角色分配,還應(yīng)考慮實施安全策略,如:數(shù)據(jù)加密:確保敏感數(shù)據(jù)在傳輸和存儲過程中得到加密。網(wǎng)絡(luò)訪問控制:限制對環(huán)境的訪問,僅允許特定IP地址或網(wǎng)絡(luò)段的訪問。審計日志:啟用審計日志,記錄所有用戶活動,以便于監(jiān)控和合規(guī)性審查。通過以上步驟,您可以有效地創(chuàng)建和配置Dynamics365環(huán)境,并管理用戶和安全,為集成與開發(fā)工作奠定堅實的基礎(chǔ)。3數(shù)據(jù)建模與實體3.1理解數(shù)據(jù)模型數(shù)據(jù)模型是MicrosoftDynamics365中組織和存儲數(shù)據(jù)的結(jié)構(gòu)。它定義了實體(即數(shù)據(jù)表)之間的關(guān)系,以及每個實體的屬性和行為。數(shù)據(jù)模型的設(shè)計直接影響到系統(tǒng)的性能和用戶體驗,因此,理解數(shù)據(jù)模型的基本概念和設(shè)計原則是至關(guān)重要的。3.1.1實體實體是數(shù)據(jù)模型中的核心組件,代表了業(yè)務(wù)中的對象,如客戶、產(chǎn)品、訂單等。每個實體都有一組預(yù)定義的屬性,如字段、選項集、關(guān)系等,以及一組預(yù)定義的行為,如創(chuàng)建、讀取、更新和刪除(CRUD)操作。3.1.2屬性屬性是實體的特征,可以是文本、數(shù)字、日期時間、選項集、貨幣等類型。例如,在客戶實體中,屬性可能包括姓名、電子郵件、電話號碼等。3.1.3關(guān)系實體之間的關(guān)系定義了數(shù)據(jù)的關(guān)聯(lián)性。關(guān)系可以是一對一、一對多或多對多。例如,一個客戶可以有多個訂單,這是一對多的關(guān)系。3.1.4示例:創(chuàng)建實體//創(chuàng)建實體的示例代碼
usingMicrosoft.Xrm.Sdk;
usingMicrosoft.Xrm.Sdk.Metadata;
//定義實體
EntityMetadatanewEntity=newEntityMetadata();
newEntity.LogicalName="new_custom_entity";
newEntity.DisplayName=newLabel("CustomEntity",1033);
newEntity.Description=newLabel("Thisisacustomentityforstoringcustomdata.",1033);
//添加屬性
AttributeMetadatanewAttribute=newStringAttributeMetadata();
newAttribute.LogicalName="custom_field";
newAttribute.DisplayName=newLabel("CustomField",1033);
newAttribute.Description=newLabel("Thisisacustomfieldforstoringadditionalinformation.",1033);
newAttribute.MaxLength=255;
newEntity.Attributes.Add(newAttribute);
//創(chuàng)建實體
Service.CreateEntity(newEntity);3.2創(chuàng)建與管理實體在MicrosoftDynamics365中,創(chuàng)建和管理實體是定制和擴展系統(tǒng)功能的關(guān)鍵步驟。這包括定義實體的屬性、設(shè)置安全性和業(yè)務(wù)規(guī)則,以及創(chuàng)建實體之間的關(guān)系。3.2.1定義實體定義實體時,需要指定實體的邏輯名稱、顯示名稱、描述和屬性。邏輯名稱是系統(tǒng)內(nèi)部用于標(biāo)識實體的唯一名稱,而顯示名稱和描述則用于用戶界面。3.2.2設(shè)置安全性和業(yè)務(wù)規(guī)則安全性定義了用戶對實體的訪問權(quán)限,包括讀取、創(chuàng)建、更新和刪除。業(yè)務(wù)規(guī)則則用于控制實體數(shù)據(jù)的輸入和處理,確保數(shù)據(jù)的完整性和一致性。3.2.3創(chuàng)建實體關(guān)系實體關(guān)系定義了實體之間的關(guān)聯(lián)性,這對于構(gòu)建復(fù)雜的數(shù)據(jù)模型和業(yè)務(wù)流程至關(guān)重要。例如,一個產(chǎn)品實體可能與多個訂單實體相關(guān)聯(lián)。3.2.4示例:管理實體//管理實體的示例代碼
usingMicrosoft.Xrm.Sdk;
usingMicrosoft.Xrm.Sdk.Metadata;
//獲取實體元數(shù)據(jù)
EntityMetadataentityMetadata=Service.RetrieveEntityMetadata("account");
//更新實體描述
entityMetadata.Description=newLabel("ThisistheupdateddescriptionfortheAccountentity.",1033);
//更新實體
Service.UpdateEntityMetadata(entityMetadata);
//刪除實體
Service.DeleteEntity("new_custom_entity");3.2.5示例:創(chuàng)建實體關(guān)系//創(chuàng)建實體關(guān)系的示例代碼
usingMicrosoft.Xrm.Sdk;
usingMicrosoft.Xrm.Sdk.Metadata;
//定義關(guān)系
OneToManyRelationshipMetadatarelationship=newOneToManyRelationshipMetadata();
relationship.SchemaName="account_new_custom_entity";
relationship.ReferencingEntity="new_custom_entity";
relationship.ReferencedEntity="account";
relationship.ReferencingAttributeName="accountid";
//創(chuàng)建關(guān)系
Service.CreateRelationship(relationship);以上代碼示例展示了如何在MicrosoftDynamics365中創(chuàng)建和管理實體,包括定義實體、設(shè)置安全性和業(yè)務(wù)規(guī)則,以及創(chuàng)建實體之間的關(guān)系。通過這些操作,可以定制和擴展系統(tǒng)的功能,以滿足特定的業(yè)務(wù)需求。4業(yè)務(wù)流程與工作流4.1設(shè)計業(yè)務(wù)流程在MicrosoftDynamics365中,設(shè)計業(yè)務(wù)流程是優(yōu)化和自動化日常操作的關(guān)鍵步驟。業(yè)務(wù)流程幫助確保團(tuán)隊遵循最佳實踐,減少錯誤,并提高效率。以下是如何在Dynamics365中設(shè)計業(yè)務(wù)流程的步驟:確定流程目標(biāo):首先,明確你希望通過業(yè)務(wù)流程實現(xiàn)什么。這可能包括提高客戶滿意度、減少銷售周期時間或簡化服務(wù)請求處理。分析現(xiàn)有流程:了解當(dāng)前的業(yè)務(wù)流程,識別瓶頸和低效環(huán)節(jié)。這可以通過流程圖、訪談或數(shù)據(jù)分析來完成。設(shè)計新流程:基于目標(biāo)和分析結(jié)果,設(shè)計一個更高效、更直觀的流程。使用Dynamics365的業(yè)務(wù)流程設(shè)計器來創(chuàng)建流程圖,定義步驟和條件。測試流程:在實際部署前,測試業(yè)務(wù)流程以確保它按預(yù)期工作。這包括檢查邏輯、驗證數(shù)據(jù)輸入和輸出,以及確保所有用戶都能正確使用。部署和培訓(xùn):一旦測試完成,部署業(yè)務(wù)流程并為團(tuán)隊成員提供必要的培訓(xùn)。確保他們理解流程的每個部分以及如何在Dynamics365中使用它。監(jiān)控和優(yōu)化:業(yè)務(wù)流程上線后,持續(xù)監(jiān)控其性能,收集反饋,并根據(jù)需要進(jìn)行調(diào)整和優(yōu)化。4.1.1示例:設(shè)計銷售流程假設(shè)我們正在設(shè)計一個銷售流程,目標(biāo)是減少銷售周期時間。以下是流程設(shè)計的簡化示例:銷售線索生成:當(dāng)新線索進(jìn)入系統(tǒng)時,自動分配給銷售團(tuán)隊成員。資格審查:銷售代表評估線索的潛力,決定是否將其轉(zhuǎn)化為機會。機會管理:銷售團(tuán)隊跟蹤機會的進(jìn)展,包括聯(lián)系客戶、提供報價和關(guān)閉銷售。銷售訂單創(chuàng)建:一旦銷售完成,自動創(chuàng)建銷售訂單并發(fā)送給客戶服務(wù)團(tuán)隊。在Dynamics365中,這可以通過創(chuàng)建一個業(yè)務(wù)流程流來實現(xiàn),流程流將指導(dǎo)用戶完成每個步驟,并在適當(dāng)?shù)臅r候觸發(fā)自動化操作。4.2實現(xiàn)工作流自動化工作流自動化是Dynamics365中提高效率和減少錯誤的另一個重要工具。通過自動化常規(guī)任務(wù),如發(fā)送電子郵件、更新記錄狀態(tài)或生成報告,可以節(jié)省時間并確保一致性。4.2.1工作流自動化步驟識別自動化機會:確定哪些任務(wù)可以自動化,例如,當(dāng)記錄狀態(tài)改變時發(fā)送通知郵件。設(shè)計工作流:使用Dynamics365的工作流設(shè)計器來創(chuàng)建工作流。定義觸發(fā)器、條件和操作。測試工作流:在實際環(huán)境中測試工作流,確保它按預(yù)期運行,沒有邏輯錯誤。部署工作流:將工作流部署到生產(chǎn)環(huán)境,并通知所有受影響的用戶。監(jiān)控和調(diào)整:工作流運行后,持續(xù)監(jiān)控其效果,并根據(jù)需要進(jìn)行調(diào)整。4.2.2示例:自動化客戶服務(wù)請求假設(shè)我們想要自動化客戶服務(wù)請求的處理流程。以下是一個簡化的工作流示例:<!--Dynamics365工作流XML示例-->
<Workflowxmlns="/dynamics/crm/2011/Workflow">
<Name>自動分配服務(wù)請求</Name>
<Description>當(dāng)服務(wù)請求創(chuàng)建時,自動分配給相應(yīng)的服務(wù)團(tuán)隊。</Description>
<TriggerType>OnCreate</TriggerType>
<Actions>
<Action>
<Name>查找服務(wù)團(tuán)隊</Name>
<Type>FindRecord</Type>
<Target>service_team</Target>
<Conditions>
<Condition>
<Field>service_type</Field>
<Operator>equals</Operator>
<Value>請求類型</Value>
</Condition>
</Conditions>
</Action>
<Action>
<Name>分配服務(wù)請求</Name>
<Type>AssignRecord</Type>
<Target>service_request</Target>
<AssignTo>服務(wù)團(tuán)隊</AssignTo>
</Action>
</Actions>
</Workflow>在這個示例中,當(dāng)一個新的服務(wù)請求被創(chuàng)建時,工作流將自動查找與請求類型匹配的服務(wù)團(tuán)隊,并將請求分配給該團(tuán)隊。這減少了手動分配的時間,并確保請求被正確地處理。通過遵循這些步驟和示例,你可以有效地在MicrosoftDynamics365中設(shè)計和實現(xiàn)業(yè)務(wù)流程與工作流自動化,從而提高團(tuán)隊的生產(chǎn)力和客戶滿意度。5MicrosoftDynamics365:自定義與擴展5.1使用PowerApps進(jìn)行自定義5.1.1介紹PowerApps是Microsoft提供的一個低代碼平臺,允許用戶創(chuàng)建自定義應(yīng)用程序,而無需深入的編程知識。在Dynamics365中,PowerApps可以用來擴展和自定義現(xiàn)有功能,創(chuàng)建新的業(yè)務(wù)流程,以及設(shè)計用戶界面,以滿足特定的業(yè)務(wù)需求。5.1.2實例:創(chuàng)建一個自定義表單假設(shè)我們正在使用Dynamics365Sales,并希望為“Lead”實體創(chuàng)建一個自定義表單,以包含一個額外的字段“潛在客戶評分”。打開PowerAppsStudio:登錄到Dynamics365,選擇“自定義”選項,然后在左側(cè)菜單中選擇“PowerAppsStudio”。選擇實體:在PowerAppsStudio中,選擇“實體”選項,找到“Lead”實體并點擊。創(chuàng)建新表單:點擊“表單”選項,然后選擇“新建表單”。選擇“快速創(chuàng)建”類型,為表單命名,例如“Lead評分表單”。添加字段:在表單設(shè)計界面,從左側(cè)的字段列表中,將“潛在客戶評分”字段拖放到表單中適當(dāng)?shù)奈恢?。設(shè)計表單布局:使用拖放功能調(diào)整字段的布局,確保表單直觀且易于使用。保存并發(fā)布:完成設(shè)計后,保存表單并發(fā)布更改,以便在Dynamics365Sales中使用。5.1.3代碼示例:使用PowerAppsCanvasApps添加邏輯假設(shè)我們想要在用戶輸入潛在客戶評分時,自動更新“Lead”實體的“狀態(tài)”字段。這可以通過在PowerAppsCanvasApps中添加一個事件處理函數(shù)來實現(xiàn)。//當(dāng)“潛在客戶評分”字段的值改變時觸發(fā)
OnChange_ScoreField:
=If(
//檢查評分是否高于50
ScoreField.Value>50,
//如果評分高于50,更新狀態(tài)為“高潛力”
Patch(
'Lead',
Defaults('Lead'),
{Status:"HighPotential"}
),
//如果評分低于或等于50,更新狀態(tài)為“低潛力”
Patch(
'Lead',
Defaults('Lead'),
{Status:"LowPotential"}
)
)在PowerAppsStudio中,找到“潛在客戶評分”字段,然后在屬性面板中,為“OnChange”屬性添加上述代碼。這將確保每當(dāng)評分字段的值改變時,自動更新“Lead”的狀態(tài)。5.2開發(fā)自定義插件5.2.1介紹Dynamics365支持通過插件進(jìn)行深度自定義和擴展。插件是一種服務(wù)器端代碼組件,可以監(jiān)聽和干預(yù)CRM中的業(yè)務(wù)操作,如創(chuàng)建、更新或刪除記錄。插件使用C#編寫,并在MicrosoftDynamics365的服務(wù)器上運行。5.2.2實例:創(chuàng)建一個插件以驗證潛在客戶評分假設(shè)我們需要創(chuàng)建一個插件,以確保在Dynamics365Sales中創(chuàng)建或更新“Lead”記錄時,潛在客戶評分字段的值在1到100之間。創(chuàng)建插件項目:使用VisualStudio創(chuàng)建一個新的Dynamics365插件項目。編寫插件代碼:在插件類中,實現(xiàn)插件邏輯,如下所示:usingMicrosoft.Xrm.Sdk;
usingSystem;
publicclassValidateLeadScore:IPlugin
{
publicvoidExecute(IServiceProviderserviceProvider)
{
ITracingServicetracingService=(ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContextcontext=(IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactoryfactory=(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationServiceservice=factory.CreateOrganizationService(context.UserId);
if(context.InputParameters.Contains("Target")&&context.InputParameters["Target"]isEntityentity)
{
if(entity.LogicalName=="lead")
{
//檢查潛在客戶評分字段
if(entity.Contains("score"))
{
intscore=(int)entity["score"];
if(score<1||score>100)
{
//拋出異常,阻止操作
thrownewInvalidPluginExecutionException("潛在客戶評分必須在1到100之間。");
}
}
}
}
}
}注冊插件:在Dynamics365中,通過“自定義”選項,找到“插件”并注冊新創(chuàng)建的插件。選擇“Lead”實體和“創(chuàng)建”或“更新”操作。測試插件:在Dynamics365Sales中嘗試創(chuàng)建或更新一個“Lead”記錄,如果潛在客戶評分不在1到100之間,插件將阻止操作并顯示錯誤消息。5.2.3插件注冊步驟登錄Dynamics365:使用管理員賬戶登錄到Dynamics365。訪問自定義選項:選擇“自定義”選項,然后在左側(cè)菜單中選擇“插件”。注冊新插件:點擊“新建插件”,輸入插件的詳細(xì)信息,如名稱、描述和插件類型。選擇實體和操作:在插件注冊向?qū)е校x擇“Lead”實體和“創(chuàng)建”或“更新”操作。設(shè)置插件步驟:確保插件在操作執(zhí)行前運行,以便進(jìn)行驗證。保存并發(fā)布:完成設(shè)置后,保存插件并發(fā)布更改,以便在Dynamics365Sales中生效。通過以上步驟,我們可以有效地使用PowerApps和C#插件來自定義和擴展Dynamics365的功能,以滿足特定的業(yè)務(wù)需求。6集成與連接6.1集成Dynamics365與外部系統(tǒng)6.1.1原理在現(xiàn)代企業(yè)環(huán)境中,MicrosoftDynamics365通常需要與各種外部系統(tǒng)進(jìn)行集成,以實現(xiàn)數(shù)據(jù)的無縫交換和業(yè)務(wù)流程的自動化。這種集成可以通過多種方式實現(xiàn),包括API調(diào)用、數(shù)據(jù)同步、消息隊列等。其中,API(應(yīng)用程序編程接口)是最常用的方法,它允許Dynamics365與外部系統(tǒng)直接通信,發(fā)送和接收數(shù)據(jù)。6.1.2內(nèi)容使用WebAPIDynamics365提供了WebAPI,這是一種基于REST(RepresentationalStateTransfer)的API,可以使用HTTP請求來讀取、創(chuàng)建、更新和刪除Dynamics365中的數(shù)據(jù)。WebAPI支持多種數(shù)據(jù)格式,如JSON和XML,可以使用任何支持HTTP的編程語言進(jìn)行調(diào)用。示例代碼://C#示例代碼:從Dynamics365獲取客戶記錄
usingSystem;
usingSystem.Net.Http;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingNewtonsoft.Json;
publicclassDynamics365Integration
{
privatestaticreadonlyHttpClientclient=newHttpClient();
privatestaticreadonlystringurl="/api/data/v9.1/customers";
privatestaticreadonlystringauthHeader="BearerYOUR_ACCESS_TOKEN";
publicstaticasyncTaskMain()
{
client.DefaultRequestHeaders.Authorization=newSystem.Net.Http.Headers.AuthenticationHeaderValue("Bearer",authHeader);
varresponse=awaitclient.GetAsync(url);
if(response.IsSuccessStatusCode)
{
varcontent=awaitresponse.Content.ReadAsStringAsync();
varcustomers=JsonConvert.DeserializeObject<Customer[]>(content);
foreach(varcustomerincustomers)
{
Console.WriteLine($"CustomerName:{customer.Name},ID:{customer.Id}");
}
}
else
{
Console.WriteLine($"Failedtoretrievecustomers:{response.StatusCode}");
}
}
}
publicclassCustomer
{
publicstringName{get;set;}
publicGuidId{get;set;}
}使用SDK除了WebAPI,Dynamics365還提供了SDK(軟件開發(fā)工具包),這是一組預(yù)編譯的類和方法,可以簡化與Dynamics365的交互。SDK支持多種編程語言,如C#、Java和Python。示例代碼://C#示例代碼:使用Dynamics365SDK創(chuàng)建客戶記錄
usingMicrosoft.Xrm.Sdk;
usingMicrosoft.Xrm.Tooling.Connector;
usingSystem;
publicclassDynamics365SdkIntegration
{
publicstaticvoidMain()
{
varconnectionString=@"AuthType=Office365;Username=yourusername;Password=yourpassword;Url=;Domain=yourdomain";
varservice=newCrmServiceClient(connectionString);
varserviceProxy=(IOrganizationService)service.OrganizationWebProxyClient;
varcustomer=newEntity("customer");
customer["name"]="NewCustomer";
customer["emailaddress1"]="newcustomer@";
varcreatedCustomer=serviceProxy.Create(customer);
Console.WriteLine($"CustomercreatedwithID:{createdCustomer.Id}");
}
}6.2使用PowerAutomate連接服務(wù)6.2.1原理PowerAutomate(以前稱為MicrosoftFlow)是一種云服務(wù),用于創(chuàng)建自動化工作流,連接不同的應(yīng)用程序和服務(wù)。通過PowerAutomate,可以輕松地在Dynamics365和其他外部系統(tǒng)之間創(chuàng)建觸發(fā)器和動作,實現(xiàn)數(shù)據(jù)的自動同步和業(yè)務(wù)流程的自動化。6.2.2內(nèi)容創(chuàng)建連接器在PowerAutomate中,連接器是用于與外部服務(wù)通信的橋梁。首先,需要創(chuàng)建一個Dynamics365連接器,這通常涉及到提供Dynamics365實例的URL、用戶名和密碼或OAuth令牌。設(shè)計工作流一旦連接器創(chuàng)建完成,就可以開始設(shè)計工作流。工作流可以包含多個步驟,每個步驟可以是一個觸發(fā)器或一個動作。觸發(fā)器是工作流的起點,當(dāng)特定事件發(fā)生時(如在Dynamics365中創(chuàng)建新記錄),觸發(fā)器將啟動工作流。動作則是在觸發(fā)器之后執(zhí)行的操作,如將數(shù)據(jù)發(fā)送到另一個系統(tǒng)或更新Dynamics365中的記錄。示例工作流:觸發(fā)器:當(dāng)在Dynamics365中創(chuàng)建新客戶時。動作:將客戶信息發(fā)送到電子郵件系統(tǒng),通知銷售團(tuán)隊。更新Dynamics365中的客戶記錄,添加一個“已通知銷售團(tuán)隊”的標(biāo)記。測試和部署設(shè)計完工作流后,需要進(jìn)行測試以確保所有步驟都能按預(yù)期工作。測試可以通過PowerAutomate的測試功能進(jìn)行,它允許你模擬觸發(fā)器事件并查看工作流的執(zhí)行情況。一旦測試通過,工作流就可以部署到生產(chǎn)環(huán)境中,開始自動處理數(shù)據(jù)和業(yè)務(wù)流程。6.2.3總結(jié)通過使用Dynamics365的WebAPI和SDK,以及PowerAutomate的連接器和工作流,可以實現(xiàn)Dynamics365與外部系統(tǒng)的高效集成。這不僅可以提高數(shù)據(jù)處理的效率,還可以減少手動操作的錯誤,提升業(yè)務(wù)流程的自動化水平。在實際操作中,應(yīng)根據(jù)具體需求選擇合適的集成方法,并確保所有集成點的安全性和穩(wěn)定性。7MicrosoftDynamics365:API與數(shù)據(jù)訪問7.1使用WebAPI訪問數(shù)據(jù)7.1.1原理MicrosoftDynamics365提供了WebAPI,這是一種基于REST的服務(wù),允許外部應(yīng)用程序以安全的方式訪問和操作Dynamics365中的數(shù)據(jù)。WebAPI支持標(biāo)準(zhǔn)的HTTP方法(如GET、POST、PATCH、DELETE),并使用JSON格式進(jìn)行數(shù)據(jù)交換,這使得它與各種編程語言和平臺兼容。7.1.2內(nèi)容認(rèn)證在使用WebAPI之前,必須進(jìn)行身份驗證。Dynamics365支持OAuth2.0協(xié)議,通常使用AzureActiveDirectory(AzureAD)進(jìn)行身份驗證。獲取訪問令牌是訪問API的第一步。查詢數(shù)據(jù)使用GET方法,可以查詢Dynamics365中的數(shù)據(jù)。例如,查詢聯(lián)系人列表:GET/api/data/v9.1/contacts操作數(shù)據(jù)創(chuàng)建數(shù)據(jù):使用POST方法。更新數(shù)據(jù):使用PATCH方法。刪除數(shù)據(jù):使用DELETE方法。示例代碼使用Python請求Dynamics365WebAPI:importrequests
importjson
#設(shè)置APIURL和訪問令牌
url="/api/data/v9.1/contacts"
headers={
"Authorization":"BearerYOUR_ACCESS_TOKEN",
"Content-Type":"application/json"
}
#查詢數(shù)據(jù)示例
response=requests.get(url,headers=headers)
data=response.json()
print(json.dumps(data,indent=4))
#創(chuàng)建數(shù)據(jù)示例
contact_data={
"firstname":"John",
"lastname":"Doe",
"emailaddress1":"john.doe@"
}
response=requests.post(url,headers=headers,data=json.dumps(contact_data))
print(response.status_code)7.1.3解釋上述代碼首先導(dǎo)入了requests和json模塊,用于發(fā)送HTTP請求和處理JSON數(shù)據(jù)。然后,設(shè)置了Dynamics365WebAPI的URL和必要的頭部信息,包括授權(quán)令牌和內(nèi)容類型。通過requests.get方法發(fā)送GET請求來查詢聯(lián)系人數(shù)據(jù),而requests.post方法用于創(chuàng)建新的聯(lián)系人記錄。7.2數(shù)據(jù)導(dǎo)入與導(dǎo)出策略7.2.1原理數(shù)據(jù)導(dǎo)入和導(dǎo)出是Dynamics365中管理數(shù)據(jù)的關(guān)鍵部分。導(dǎo)入數(shù)據(jù)允許將外部數(shù)據(jù)集引入Dynamics365,而導(dǎo)出數(shù)據(jù)則允許將Dynamics365中的數(shù)據(jù)導(dǎo)出到外部文件或系統(tǒng)中,通常用于備份、遷移或數(shù)據(jù)分析。7.2.2內(nèi)容導(dǎo)入數(shù)據(jù)數(shù)據(jù)準(zhǔn)備:確保數(shù)據(jù)格式正確,與Dynamics365中的實體和字段匹配。使用工具:Dynamics365提供了數(shù)據(jù)導(dǎo)入工具,也可以使用PowerQuery或PowerBI進(jìn)行更高級的數(shù)據(jù)導(dǎo)入。導(dǎo)出數(shù)據(jù)導(dǎo)出選項:可以使用Dynamics365的導(dǎo)出功能,或編寫自定義代碼通過WebAPI導(dǎo)出數(shù)據(jù)。數(shù)據(jù)處理:導(dǎo)出后,可能需要對數(shù)據(jù)進(jìn)行清洗或轉(zhuǎn)換,以便在其他系統(tǒng)中使用。示例代碼使用Python通過WebAPI導(dǎo)出聯(lián)系人數(shù)據(jù):importrequests
importjson
#設(shè)置APIURL和訪問令牌
url="/api/data/v9.1/contacts"
headers={
"Authorization":"BearerYOUR_ACCESS_TOKEN",
"Content-Type":"application/json"
}
#發(fā)送GET請求并處理響應(yīng)
response=requests.get(url,headers=headers)
data=response.json()
#將數(shù)據(jù)寫入文件
withopen('contacts.json','w')asfile:
json.dump(data,file,indent=4)7.2.3解釋此代碼示例展示了如何使用Python通過Dynamics365WebAPI導(dǎo)出聯(lián)系人數(shù)據(jù)。首先,設(shè)置API的URL和頭部信息,包括授權(quán)令牌。然后,使用requests.get方法發(fā)送GET請求來獲取聯(lián)系人數(shù)據(jù)。最后,將JSON格式的響應(yīng)數(shù)據(jù)寫入本地文件contacts.json中,以便進(jìn)一步處理或分析。以上教程詳細(xì)介紹了如何在MicrosoftDynamics365中使用WebAPI訪問和操作數(shù)據(jù),以及如何制定數(shù)據(jù)導(dǎo)入和導(dǎo)出策略。通過這些方法,可以有效地集成Dynamics365與外部系統(tǒng),實現(xiàn)數(shù)據(jù)的無縫流動。8測試與部署8.1創(chuàng)建測試計劃在MicrosoftDynamics365中,創(chuàng)建測試計劃是確保解決方案質(zhì)量的關(guān)鍵步驟。測試計劃不僅幫助團(tuán)隊組織測試活動,還確保所有功能都經(jīng)過充分驗證,以滿足業(yè)務(wù)需求和用戶期望。8.1.1步驟1:定義測試目標(biāo)目標(biāo):明確測試計劃的目的,例如驗證自定義解決方案在不同環(huán)境下的兼容性和穩(wěn)定性。8.1.2步驟2:識別測試范圍范圍:確定哪些功能和模塊需要被測試,例如銷售流程、客戶服務(wù)模塊或自定義工作流。8.1.3步驟3:選擇測試類型類型:選擇適當(dāng)?shù)臏y試類型,如單元測試、集成測試、系統(tǒng)測試或用戶驗收測試。8.1.4步驟4:創(chuàng)建測試用例用例:為每個測試類型編寫詳細(xì)的測試用例,包括預(yù)期結(jié)果和步驟。8.1.5步驟5:分配測試資源資源:分配測試人員、測試數(shù)據(jù)和測試環(huán)境。8.1.6步驟6:執(zhí)行測試執(zhí)行:按照測試計劃執(zhí)行測試用例,記錄結(jié)果和發(fā)現(xiàn)的任何問題。8.1.7步驟7:評估和報告評估:評估測試結(jié)果,確保所有關(guān)鍵功能都已通過測試。報告:編寫測試報告,包括測試總結(jié)、發(fā)現(xiàn)的問題和建議的改進(jìn)措施。8.2部署自定義解決方案部署自定義解決方案到MicrosoftDynamics365涉及將開發(fā)的組件和代碼從開發(fā)環(huán)境遷移到生產(chǎn)環(huán)境。這一過程需要仔細(xì)規(guī)劃,以確保平穩(wěn)過渡和最小化對業(yè)務(wù)運營的影響。8.2.1步驟1:打包解決方案打包:在開發(fā)環(huán)境中,使用Dynamics365的解決方案管理功能將所有自定義組件打包成一個解決方案文件。8.2.2歉意,由于Markdown不支持中文代碼注釋,以下示例將使用英文注釋。#PowerShellscripttoexportasolution
$SolutionName="CustomSolution"
$Managed=$false
$ExportSolution=New-ObjectMicrosoft.Xrm.Tooling.Connector.CrmServiceClient("YourConnectionString")
$ExportSolution.ExportSolution($SolutionName,$Managed,"C:\Solutions\$SolutionName.unmanaged.zip")8.2.3步驟2:驗證解決方案驗證:在測試環(huán)境中導(dǎo)入解決方案,進(jìn)行全面測試,確保所有功能正常運行。#PowerShellscripttoimportasolution
$SolutionFile="C:\Solutions\CustomSolution.unmanaged.zip"
$ImportSolution=New-ObjectMicrosoft.Xrm.Tooling.Connector.CrmServiceClient("YourConnectionString")
$ImportSolution.ImportSolution($SolutionFile)8.2.4步驟3:準(zhǔn)備生產(chǎn)環(huán)境準(zhǔn)備:確保生產(chǎn)環(huán)境的配置與測試環(huán)境一致,包括數(shù)據(jù)庫結(jié)構(gòu)、安全設(shè)置和用戶權(quán)限。8.2.5步驟4:導(dǎo)入解決方案到生產(chǎn)環(huán)境導(dǎo)入:使用與測試環(huán)境相同的步驟,將解決方案導(dǎo)入到生產(chǎn)環(huán)境中。8.2.6步驟5:執(zhí)行后部署檢查檢查:部署后,執(zhí)行一系列檢查,確保所有功能在生產(chǎn)環(huán)境中正常運行,沒有引入新的問題。8.2.7步驟6:培訓(xùn)用戶培訓(xùn):對最終用戶進(jìn)行培訓(xùn),確保他們了解新功能和任何操作變化。8.2.8步驟7:監(jiān)控和維護(hù)監(jiān)控:部署后持續(xù)監(jiān)控系統(tǒng)性能,收集用戶反饋,進(jìn)行必要的維護(hù)和更新。通過遵循上述步驟,可以有效地創(chuàng)建測試計劃和部署自定義解決方案,確保MicrosoftDynamics365系統(tǒng)的穩(wěn)定性和可靠性。9性能優(yōu)化與最佳實踐9.1優(yōu)化系統(tǒng)性能9.1.1理解性能瓶頸在MicrosoftDynamics365中,性能瓶頸可能出現(xiàn)在多個層面,包括數(shù)據(jù)庫查詢、業(yè)務(wù)邏輯處理、用戶界面響應(yīng)時間等。識別這些瓶頸是優(yōu)化系統(tǒng)性能的第一步。9.1.2數(shù)據(jù)庫查詢優(yōu)化示例:優(yōu)化查詢//假設(shè)我們有一個實體Customer,需要查詢所有在2023年注冊的客戶
//優(yōu)化前的查詢
varquery=newQueryExpression(Customer.EntityLogicalName);
query.ColumnSet=newColumnSet("name","email");
query.Criteria.AddCondition("registration_date",ConditionOperator.OnOrAfter,newDateTime(2023,1,1));
query.Criteria.AddCondition("registration_date",ConditionOperator.OnOrBefore,newDateTime(2023,12,31));
//優(yōu)化后的查詢,使用日期范圍的開始和結(jié)束值,避免多次查詢
varoptimizedQuery=newQueryExpression(Customer.EntityLogicalName);
optimizedQuery.ColumnSet=newColumnSet("name","email");
vardateRange=newFilterExpression(LogicalOperator.And);
dateRange.AddCondition("registration_date",ConditionOperator.OnOrAfter,newDateTime(2023,1,1));
dateRange.AddCondition("registration_date",ConditionOperator.OnOrBefore,newDateTime(2023,12,31));
optimizedQuery.Criteria.AddFilter(dateRange);優(yōu)化后的查詢使用了單一的FilterExpression來組合日期范圍的條件,這通常比多次添加條件更高效。9.1.3業(yè)務(wù)邏輯優(yōu)化示例:減少不必要的數(shù)據(jù)加載//假設(shè)我們需要在業(yè)務(wù)邏輯中使用客戶信息
//優(yōu)化前的代碼,每次調(diào)用都重新加載數(shù)據(jù)
publicvoidProcessCustomer(intcustomerId)
{
varcustomer=Service.Retrieve(Customer.EntityLogicalName,customerId,newColumnSet(true));
//處理客戶信息
}
//優(yōu)化后的代碼,使用緩存減少數(shù)據(jù)加載次數(shù)
privateDictionary<int,Entity>_customerCache=newDictionary<int,Entity>();
publicvoidProcessCustomer(intcustomerId)
{
if(!_customerCache.ContainsKey(customerId))
{
varcustomer=Service.Retrieve(Customer.EntityLogicalName,customerId,newColumnSet(true));
_customerCache.Add(customerId,customer);
}
varcustomer=_customerCache[customerId];
//處理客戶信息
}通過使用緩存,我們可以避免在多次調(diào)用同一客戶信息時重復(fù)加載數(shù)據(jù),從而提高性能。9.2遵循開發(fā)最佳實踐9.2.1代碼復(fù)用示例:創(chuàng)建可復(fù)用的函數(shù)//創(chuàng)建一個函數(shù)來處理客戶信息,可以被多個模塊調(diào)用
publicEntityGetCustomer(intcustomerId)
{
returnService.Retrieve(Customer.EntityLogicalName,customerId,newColumnSet(true));
}
//在其他模塊中調(diào)用此函數(shù)
publicvoidProcessOrders(intcustomerId)
{
varcustomer=GetCustomer(customerId);
//處理訂單邏輯
}通過創(chuàng)建可復(fù)用的函數(shù),我們避免了在多個地方重復(fù)編寫相同的代碼,這不僅提高了代碼的可維護(hù)性,也減少了出錯的可能性。9.2.2遵守命名規(guī)范在開發(fā)過程中,遵守一致的命名規(guī)范對于代碼的可讀性和可維護(hù)性至關(guān)重要。例如,使用PascalCase為類和接口命名,使用camelCase為變量和函數(shù)命名。9.2.3使用版本控制示例:Git的使用#初始化一個新的Git倉庫
gitinit
#添加文件到倉庫
gitadd.
#提交更改
gitcommit-m"Initialcommit"
#推送代碼到遠(yuǎn)程倉庫
gitpushoriginmaster使用版本控制系統(tǒng)如Git,可以幫助團(tuán)隊管理代碼變更,追蹤歷史版本,協(xié)作開發(fā)。9.2.4文檔與注釋在代碼中添加清晰的注釋和維護(hù)文檔,對于理解和維護(hù)代碼至關(guān)重要。注釋應(yīng)解釋代碼的目的和邏輯,而文檔則應(yīng)概述模塊的功能和使用方法。9.2.5測試與調(diào)試示例:單元測試[TestClass]
publicclassCustomerServiceTests
{
[TestMethod]
publicvoidTestGetCustomer()
{
varservice=newCustomerService();
varcustomer=service.GetCustomer(1);
Assert.IsNotNull(customer);
}
}編寫單元測試可以確保代碼的正確性和穩(wěn)定性,及時發(fā)現(xiàn)并修復(fù)問題。9.2.6安全性在開發(fā)過程中,始終考慮安全性,確保數(shù)據(jù)的加密、用戶權(quán)限的管理以及防止SQL注入等安全威脅。9.2.7性能監(jiān)控使用工具如Dynamics365的性能分析器,定期監(jiān)控和分析系統(tǒng)的性能,以便及時發(fā)現(xiàn)并解決性能問題。9.2.8用戶體驗在設(shè)計用戶界面時,考慮用戶體驗,確保界面響應(yīng)迅速,操作直觀,減少用戶等待時間。9.2.9持續(xù)集成與持續(xù)部署示例:Jenkins的使用#Jenkinsfile配置示例
pipeline{
agentany
stages{
stage('Build'){
steps{
sh'dotnetbuild'
}
}
stage('Test'){
steps{
sh'dotnettest'
}
}
stage('Deploy'){
steps{
sh'dotnetpublish'
}
}
}
}通過持續(xù)集成和持續(xù)部署(CI/CD)流程,可以自動化構(gòu)建、測試和部署過程,提高開發(fā)效率和軟件質(zhì)量。9.2.10代碼審查定期進(jìn)行代碼審查,可以發(fā)現(xiàn)潛在的錯誤,提高代碼質(zhì)量,同時促進(jìn)團(tuán)隊成員之間的知識共享。9.2.11保持更新定期更新Dynamics365的版本,以及相關(guān)的開發(fā)工具和庫,以利用最新的功能和性能改進(jìn)。9.2.12社區(qū)與支持積極參與Dynamics365的開發(fā)者社區(qū),可以獲取最新的開發(fā)技巧,解決遇到的問題,同時分享自己的經(jīng)驗。通過遵循上述性能優(yōu)化與開發(fā)最佳實踐,可以顯著提高M(jìn)icrosoftDynamics365系統(tǒng)的性能和穩(wěn)定性,同時確保代碼的高質(zhì)量和可維護(hù)性。10故障排除與支持10.1常見問題與解決方案10.1.1連接問題:無法連接到Dynamics365環(huán)境問題描述:在嘗試訪問或集成Dyna
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025江蘇建筑安全員-C證(專職安全員)考試題庫
- 2025年湖南省安全員-C證考試題庫
- 離心泵知識培訓(xùn)課件
- 普通話口語訓(xùn)練(課件)
- 【物理課件】透鏡成像作圖法課件
- 材料物理化學(xué)課件緒論
- 《BA工法簡介》課件
- 湖南省株洲市淥口區(qū)第三中學(xué)、健坤瀟湘高級中學(xué)2024-2025學(xué)年高二上學(xué)期期末考試歷史試題(含答案)
- 單位管理制度收錄大全【人事管理篇】
- 單位管理制度收錄大合集【員工管理篇】
- 爆破設(shè)計說明書(修改)
- 2025屆天津市南開區(qū)南開中學(xué)語文高三上期末達(dá)標(biāo)檢測試題含解析
- 期末試卷(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)滬教版
- 公交公司風(fēng)險分級管控臺賬
- 光伏電站運維詳細(xì)版手冊
- 食品安全應(yīng)急管理和突發(fā)事故報告制度
- 藝術(shù)學(xué)概論第一章-彭吉象
- 國際貿(mào)易風(fēng)險防范與應(yīng)對指南
- 51job在線測評題集
- 2023年宜賓五糧液股份有限公司社會招聘考試真題
- 2024兒童身高現(xiàn)狀報告
評論
0/150
提交評論