Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  EPLAN Electric P8
  eView/eManage upload via API-Skript

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN
  
E-world: Standards und datengetriebene Automatisierung für die Energiewende, eine Pressemitteilung
Autor Thema:  eView/eManage upload via API-Skript (458 / mal gelesen)
CircuitBreakerPaul
Mitglied


Sehen Sie sich das Profil von CircuitBreakerPaul an!   Senden Sie eine Private Message an CircuitBreakerPaul  Schreiben Sie einen Gästebucheintrag für CircuitBreakerPaul

Beiträge: 6
Registriert: 13.02.2024

EPLAN 2023 Update 7
(EPLAN 2.7 HF10)
Win 10 Enterprise

erstellt am: 17. Feb. 2025 15:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo, wir versuchen bei uns gerade die Verwendung von eView einzuführen.
Eines unserer größeren Probleme ist aktuell noch der sehr lange Prozess des Hochladens.

eManage hochladen -> eView veröffentlichen -> Kommentar hinzufügen

Da man ja zwischen den einzelnen Schritten immer recht lang warten muss da die Cloud ja teilweise extrem langsam ist haben wir überlegt dies teilweise über die Cloud API und einem Skript zu automatisieren.

Meine Frage:
Hat hier jemand schon ein kleines Beispielskript, welches nur den Basic Upload + eView veröffentlichen durchführt?
Mit dem Scripting in EPLAN kenn ich mich mittlerweile sehr gut aus (dank Johann Weihers Buch) aber von der Cloud API hab ich leider absolut keine Ahnung und mit der EPLAN Hilfe dazu komm ich auch noch nicht so wirklich zurecht.

Des weiteren ist meine Frage ob ich den ganzen Upload und veröffentlichen Prozess in einen einfachen EPLAN c# Skript machen kann oder ob es da sinnvoller wäre eine separates Programm zu schreiben, welches dann nur durch ein Eplan Skript aufgerufen wird. (der Grund wäre, dass man dann EPLAN schließen kann, während das externe Programm sich noch ums eView Veröffentlichen des Uploads kümmert)

Über ein kleine funktionierendes Beispielskript und jeglichen Input würde ich mich freuen.

LG Paul

------------------
Wer nichts weiß, muss alles glauben!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pxecad
Mitglied



Sehen Sie sich das Profil von pxecad an!   Senden Sie eine Private Message an pxecad  Schreiben Sie einen Gästebucheintrag für pxecad

Beiträge: 260
Registriert: 13.02.2015

- - - - - - - - - - - - - - - - - - - - -
Electric P8 2024 U1
Pro Panel 2024 U1
EEC Professional 2023 (Web EEC)
- - - - - - - - - - - - - - - - - - - -

erstellt am: 17. Feb. 2025 15:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CircuitBreakerPaul 10 Unities + Antwort hilfreich

apps4eplan
Mitglied
freier Entwickler


Sehen Sie sich das Profil von apps4eplan an!   Senden Sie eine Private Message an apps4eplan  Schreiben Sie einen Gästebucheintrag für apps4eplan

Beiträge: 130
Registriert: 26.11.2020

EEC Professional in allen Versionen

erstellt am: 21. Feb. 2025 10:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CircuitBreakerPaul 10 Unities + Antwort hilfreich

Und aus diesem "Vorfühlen" zu dem Thema ist eine stabile und praktikable Lösung geworden, die mittlerweile auch den Umstieg von 2024 auf 2025 unbeschadet überstanden hat; läuft vollautomatisch in der Nacht mit einem Windowstask los und ballert die Projekte in die Cloud 

------------------
sind doch alles nur Nuller und Einser :-) !!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CircuitBreakerPaul
Mitglied


Sehen Sie sich das Profil von CircuitBreakerPaul an!   Senden Sie eine Private Message an CircuitBreakerPaul  Schreiben Sie einen Gästebucheintrag für CircuitBreakerPaul

Beiträge: 6
Registriert: 13.02.2024

EPLAN 2023 Update 7
(EPLAN 2.7 HF10)
Win 10 Enterprise

erstellt am: 24. Feb. 2025 15:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

In der API Hilfe hab ich jetzt auch schon herumprobiert, aber in ein funktionierendes Skript bekomm ich es noch nicht ganz.

@apps4eplan Hast du da vielleicht ein ein simples Skript, welches den Upload durchführt und das du hier teilen könntest?

LG Paul

------------------
Wer nichts weiß, muss alles glauben!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

apps4eplan
Mitglied
freier Entwickler


Sehen Sie sich das Profil von apps4eplan an!   Senden Sie eine Private Message an apps4eplan  Schreiben Sie einen Gästebucheintrag für apps4eplan

Beiträge: 130
Registriert: 26.11.2020

EEC Professional in allen Versionen

erstellt am: 25. Feb. 2025 08:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CircuitBreakerPaul 10 Unities + Antwort hilfreich

Die reine API-Hilfe wird da auch nicht vorrangig helfen, die ganzen WEB-Services sind eher unter https://developer.eplan.com
beschrieben.
Sorry, Scripting Lösung hab ich keine parat.

------------------
sind doch alles nur Nuller und Einser :-) !!!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Moderator



Sehen Sie sich das Profil von F.S. an!   Senden Sie eine Private Message an F.S.  Schreiben Sie einen Gästebucheintrag für F.S.

Beiträge: 1924
Registriert: 23.04.2003

EPLAN Electric P8
2025 Prof.

erstellt am: 25. Feb. 2025 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CircuitBreakerPaul 10 Unities + Antwort hilfreich

Hallo,

so gehts per Skript:

Code:

// Cloud Project upload.cs
//
// lädt ein Projekt in die EPLAN Cloud nach eMANAGE hoch
//
// Copyright by Frank Schöneck, 2023
// letzte Änderung:
// V1.0.0, 28.09.2023, Frank Schöneck, Projektbeginn
//
// für Eplan Electric P8, ab V2023

using Eplan.EplApi.Scripting;
using System.Net.Http.Headers;
using System.Net.Http;
using System.Threading.Tasks;

public class Cloud_ProjectUpload_Class
{
[Start]
public async Task Cloud_ProjectUploadAsync()
{
string PAT_EPLAN_EMANAGE = "myPAT!!!";
var projectStoreIoServiceClient = new HttpClient();
projectStoreIoServiceClient.DefaultRequestHeaders.Accept.ParseAdd("*/*");
projectStoreIoServiceClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PAT_EPLAN_EMANAGE);
var content = new MultipartFormDataContent();

var folderName = "my/target/folder";
content.Add(new StringContent(folderName), "folder");

var fileName = @"C:\Temp\myProject.zw1";
var fileContent = System.IO.File.ReadAllBytes(fileName);
var byteArrayContent = new ByteArrayContent(fileContent);
content.Add(byteArrayContent, "files", "myProject.zw1");

var createProjectResponse = await projectStoreIoServiceClient.PostAsync("https://api.eplan.com/projectStoreIOService/v1.0/projects?format=zw1", content);

System.Windows.Forms.MessageBox.Show(createProjectResponse.StatusCode.ToString());
}
}


------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nairolf
Ehrenmitglied
Elektroingenieur


Sehen Sie sich das Profil von nairolf an!   Senden Sie eine Private Message an nairolf  Schreiben Sie einen Gästebucheintrag für nairolf

Beiträge: 1998
Registriert: 21.01.2006

EPLAN Electric P8 2024.0.3 Update 1 (Build 21460)
EPLAN Pro Panel Professional Addon
EPLAN Fluid Addon

erstellt am: 12. Mrz. 2025 11:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CircuitBreakerPaul 10 Unities + Antwort hilfreich

Hallo zusammen !

@Frank: Danke für das Beispiel 

Möchte hier nicht pingelig rüberkommen, aber ich würde zum Instanzieren eines HttpClients
die Funktionen des Eplan Identity Client verwenden
Nicht offensichtlich, da in der API Hilfe beschrieben: das funktioniert auch einwandfrei in Scripten 

Einer der Vorteile: man muss keinen PAT erstellen, und es wird die Identität des Users beim Anmelden an der Eplan Cloud verwendet (beim Eplan-Start),
somit kann man ein Script auch besser an andere User verteilen, selbst wenn die mit anderen Organisationen arbeiten wollen/müssen und
auch das Problem eines ablaufenden PATs wäre eliminiert 

Wenn ein Endpoint verwendet wird, der seitens Eplan deprecated wird, so würde man über den IdentityClient auch automatisch in den Systemmeldungen
einen Eintrag erhalten, dass man Ressourcen nutzt, die ggf. demnächst veraltet sind  (und wann genau das der Fall sein wird)

Darüber hinaus (etwas theoretischer Natur):
Ein HttpClient instanziert über den IdentityClient setzt im user-agent Header des Requests
exakt (und automatisch) die verwendete Eplan-Version usw. dadurch kann im Fall eines Breaking Changes seitens Eplan,
ggf. ein versionsabhängiges re-routing eingerichtet werden, d.h. technisch köntne so ein Endpunkt stabiler bleiben (auch für ältere Versionenen).

Anlog zum Beispiel von Frank, einfach quick & dirty (keine Garantie auf Fehlerfreiheit  )

Code:
using Eplan.EplApi.Scripting;
using System.IO;
using System.Net.Http.Headers;
using System.Net.Http;
using System.Threading.Tasks;

public class Cloud_ProjectUpload_Class
{
[Start]
public async Task Cloud_ProjectUploadAsync()
{
// Initialize httpClient object
var baseurl = "https://api.eplan.com/projectStoreIOService/v1.0";
HttpClient httpClient = null;
IEIdentityClient IdentityClient = EIdentityClient.Instance;
IdentityClientResponse httpClientRespone = IdentityClient.GetHttpClient("eManagePaid", baseurl, ref httpClient);

// Post project
if (httpClientRespone.IsSuccess)
{
var multipartFormDataContent = new MultipartFormDataContent();
var folderName = "my/target/folder";
multipartFormDataContent.Add(new StringContent(folderName), "folder");
var fileName = @"C:\Temp\myProject.zw1";
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
multipartFormDataContent.Add(new StreamContent(fileStream), "files", Path.GetFileName(fileName));
string _uri = baseurl + "/projects?format=zw1";
var response = httpClient.PostAsync(_uri, multipartFormDataContent).Result;
string message = "Status: " + response.StatusCode.ToString() + System.Environment.NewLine + "Upload job id: " + response.Headers.Location.ToString();
new Decider().Decide(EnumDecisionType.eOkDecision, message, "Post result", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK);
}
}
}


------------------
Der Fuchs ist schlau und stellt sich dumm.
Bei vielen ist es andersrum 
------------------------------------------
Da lernt man mühevoll laufen und sprechen,
und nun soll ich stillsitzen und die Klappe halten !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Moderator



Sehen Sie sich das Profil von F.S. an!   Senden Sie eine Private Message an F.S.  Schreiben Sie einen Gästebucheintrag für F.S.

Beiträge: 1924
Registriert: 23.04.2003

EPLAN Electric P8
2025 Prof.

erstellt am: 12. Mrz. 2025 14:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CircuitBreakerPaul 10 Unities + Antwort hilfreich

Hallo nairolf 

ich bin froh das du so pingelig bist, dadurch können wir alle nur was lernen 

Ich glaube mein Script ist entstanden bevor mir die Möglichkeiten des IdentityClient bekannt wurden.
Meine Scripte für die Cloud sind nur Konzepte um zu schauen wie es funktioniert, im produktiven Einsatz habe ich die nicht.

Danke für deine ausführlichen Erläuterungen zum Thema.

------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz