Artikeleigenschap koppelen aan een database

Hallo

 

Laat me je mijn probleem vertellen: in mijn bedrijf gebruiken ze een software (quadratus) die alle kamers groepeert met verschillende eigendomsvelden inbegrepen.

Deze software was al aanwezig voor de integratie van solidworks. Dus heb ik deze eigenschappen (uit de quadratus-software) met de hand in elk van mijn 3D-stukken geïntegreerd.

Omstandigheden brengen met zich mee dat bepaalde velden gewijzigd zullen worden of gewijzigd kunnen worden, zoals prijzen.

 

Daar komt mijn vraag vandaan. Kunnen we de eigenschappen van de onderdelen koppelen aan die van mijn 3D onderdelen door middel van een excel bestand uit de quadratus software.

 

Ik weet dat er solidworks EPDM is dat dit goed zou doen, maar het zou betekenen dat de software moet worden gewijzigd, wat niet erg mogelijk is.

 

Dank u voor uw hulp.

 

 

Vriendelijke groeten

 

Florian HALLUIN

Hallo

Ik hoop dat je de prijzen van je onderdelen niet opslaat in de SW eigenschappen van je onderdelen! In dat geval zou ik willen voorstellen dat u probeert uw organisatie te herzien.

Aan de andere kant kun je iets ontwikkelen als je oefent met programmeren. Maar weet dat het in ieder geval lang en ingewikkeld zal zijn. Maar interessant....

1 like

Ja, de prijzen worden opgeslagen in de database van alle componenten (onder quadra tus) en in mijn Solidworks onderdelen.


Ik sta open voor elke verandering.

Om de waarheid te zeggen, mijn bedrijf heeft Solidworks bijna een jaar geleden overgenomen voor mijn DUT-stage waarin ik de software gedeeltelijk in het bedrijf heb geïntegreerd. Omdat ik alleen was in deze taak, probeerde ik de dingen op de beste manier te doen, terwijl ik wist dat ik fouten kon maken... Dit jaar volg ik een leerwerkprogramma en ik blijf de integratie verbeteren , ook al wordt het steeds ingewikkelder gezien het aantal documenten dat al is gemaakt.


Ik vind het ook niet erg om te programmeren , ik heb een aantal basisprincipes om te zien, afhankelijk van wat ik moet doen.

Het probleem dat remrem zeker wil aankaarten, is dat als u de prijs van uw deel opslaat in uw SW-aandeel, als u het deelt met uw leveranciers of klanten, zij de prijs zullen kennen...

Tenzij dat is wat je zoekt...

een+

 

Aan deze kant is er geen probleem, want de prijs is gewoon om met een stuklijst te komen en alleen een schatting te hebben van de prijs van de montage in eigen huis.

AH! ;-)

Sinds enkele maanden zijn we bezig met het implementeren van complete stuklijsten en daarmee de relatie tussen ons ERP en SW.

Onze SW-bestanden bevatten alleen technische informatie (materiaal, dikte, etc.) en vervolgens hebben we een bestandsuitwisseling opgezet (in de vorm van txt) of we wisselen uit met het ERP. De verkoop- en inkoopinformatie (Prijs, leverancier, etc.) staat dus alleen in het ERP en de koppeling wordt gemaakt door een gemeenschappelijk eigendom (bij ons de artikelcode).

Persoonlijk heb ik in vb.net een kleine applicatie gemaakt die de informatie in het ERP vanuit SW bijwerkt door rechtstreeks naar de database (MySQL) te schrijven.

Het is een groot project, dus ik raad u aan om de behoeften van de betrokken diensten te inventariseren. Om andere bedrijven te bezoeken om te zien hoe ze werken. Om prioriteiten te stellen.

Voorlopig raad ik je aan om slechts één manier van updaten te overwegen, we hebben gekozen voor SW  = > ERP. Dus als de revisie van een document in SW wordt gewijzigd, gaat het terug naar het ERP. Het voordeel is dat als we de prijs in het ERP wijzigen, we deze niet in SW hoeven bij te werken, omdat deze alleen in het ERP wordt opgeslagen. Evenzo, als u het verdikkingsmiddel in een kamer vervangt, gaat het niet terug naar het ERP omdat het daar niet is opgeslagen. Vandaar het belang om de juiste informatie te kiezen die je nodig hebt in het ERP.

Ik hoop dat ik je een beetje heb geholpen... ;-)

2 likes

(Ik heb de indruk dat mijn antwoord niet is gepubliceerd, dus typ ik het opnieuw...)

Wat je zegt is interessant.

In mijn bedrijf dat zich bezighoudt met waterbehandeling, assembleren we voornamelijk standaardproducten: buizen, ellebogen, T-stukken, kleppen enz.

Dus in dit geval zou het meer de ERP zijn die met SW zou communiceren.

 

Zou het mogelijk zijn om iets meer te weten te komen over je programma? Hoe txt-bestandsuitwisseling werkt. Als het automatisch is, alle onderdelen tegelijk, één voor één?

 

Ik dacht er ook aan om te kijken hoe andere bedrijven het deden, maar zouden ze de deuren zo gemakkelijk voor me openen?

In feite heb ik twee apps:

           1. okt. SW = ERP > link: Informatie die rechtstreeks in de ERP-database wordt geschreven

Elke ochtend (Voorbeeld) start een taak automatisch.

Het leest revisies in SW-bestanden (zonder ze te openen) en vergelijkt met het ERP. Dan updates indien nodig. Verwerkingstijd: ~10 minuten

Een thumbnail (afbeelding), pdf-plan en een Edrawing gemaakt van elk SW-element waarvan de artikelcode in het ERP aanwezig is en de links naar deze elementen invoegt. Zo heeft een gebruiker in het ERP direct toegang tot een weergave van het onderdeel, het PDF-plan en een 3D-e-tekening.

 

           Arabisch cijfer. Stuklijsten maken

Bij het openen van een Excel-spreadsheet, na veel processen en foutcontroles. Ik maak een of meer txt-bestanden die het ERP weet te verwerken om vervolgens artikelen te maken of reeksen te maken en de benodigdheden te beheren.

 

Wat bedrijven betreft. We hadden de kans om verschillende bedrijven te ontmoeten die ons verwelkomden en ons adviseerden bij ons project.

1 like

Het lijkt een redelijk goede oplossing te zijn. Zou het mogelijk zijn om toegang te krijgen tot de programmacode?

Dus ik ga kijken of ik een aantal bedrijven kan ontmoeten om te zien hoe ze werken. In de hoop dat ze net zo gastvrij zullen zijn als degenen die je hebt ontmoet.

Goedenavond

Als ik dit soort projecten zou moeten doen, zou ik beginnen met het definiëren van een (goed gedefinieerde) specificatie met mijn bedrijf.

Dan zou ik kijken of ik toegang heb tot de databasestructuur van de doelsoftware.

Zo ja, dan gebruik ik SQL-queries om de gegevens aan te passen of toe te voegen.

Zo niet, dan moet u een andere manier vinden om de gegevens te injecteren (tekstbestand met scheidingstekens, Excel-bestand, XML-bestand,...)

Vervolgens moet u kiezen of u een afzonderlijke software, een SW-invoegtoepassing of beide wilt maken.

Ik heb beide vetgedrukt, omdat je, afhankelijk van de frequentie van updates, beide nodig hebt.

Laten we het volgende voorbeeld nemen: u wijzigt de prijs van een kamer en een verkoper maakt een offerte om dezelfde kamer op hetzelfde moment als u te verkopen. De offerte van de verkoper is gebaseerd op de oude prijs tot de update van de volgende dag. (Niet echt cool, hoe dan ook).

Ik zou nog beter een Windows-service zien die naar SW luistert. Een document wordt geopend, bewerkt en gesloten. Bij het sluiten zal de service de doelsoftware inchecken en de wijzigingen aanbrengen als die er zijn. In dit geval hoeft u maar één software te maken: de service.

De code zelf is immers niet heel ingewikkeld, het ophalen van de waardes van custom properties is eenvoudig en het uitlezen van data in een database is net zo eenvoudig.

Niets ergs dus om te coderen maar wel veel werk aan de specificaties.

2 likes

Hallo

Bedankt voor de extra hulp.

 

Ik zal dus, zoals iedereen mij heeft geadviseerd, een bestek opstellen voor dit project.

 

Aan de andere kant heb ik wat basisprogrammering, maar niet genoeg om zo'n code vrij te geven.

Je vertelt me dat het ophalen van de waarden van aangepaste eigenschappen eenvoudig is, maar zou ik een idee kunnen hebben hoe ik verder moet gaan? Welke functie wordt gebruikt?

Met welke software zou dit project het meest geschikt zijn om te ontwikkelen?

Van mijn kant zou ik gaan voor een Macro die de link zou maken tussen je Excel-bestand en je Solidworks-bestanden

 

Samen programmeren via VBA in een Excel-bestand laat je het stempelen op de quadratus-extractie en loop je op elke regel om elke eigenschap van elk onderdeel te controleren en indien nodig aan te passen

1 like

Hallo 

Ik zal je vanavond een voorbeeld geven in de vorm van een macro.

Voor het programmeren van software gebruik ik Visual studio 2017. Maar er zijn er nog veel meer.

Kies je programmeertaal zorgvuldig, rust jezelf uit met een goede pen en een pak papier. Als je geen papier meer hebt, zou je project moeten werken. :)

 

1 like

Niet alle delen van de Quadratus-basis worden in 3D weergegeven. Ik zie niet in of dit een probleem gaat worden.

Ik denk dat ik de SolidWorks-eigenschappen van onderdelen alleen mag bijwerken als je een assembly of een onderdeel opent.

 

Ik zag net een aantal regels code waarvan ik denk dat ze nuttig voor mij zullen zijn:

" Om een eigendom terug te krijgen, is de instructie:

                SWmoddoc. GetCustomInfoValue("", "code")


We krijgen de eigenschap "code" in de VBA-variabele "CODE", waarbij SWmoddoc uw actieve document vertegenwoordigt (Set SWmoddoc = swApp.ActiveDoc). "

Het maakt niet uit als alle onderdelen in het ERP geen 3D hebben. Je hoeft de twee alleen maar op één veld te vergelijken.

Voor mij is het niet voldoende om de gegevens alleen bij het openen van een onderdeel bij te werken, omdat het zou betekenen dat de gegevens zijn gewijzigd in een gesloten bestand als de bindingsrichting Sw>>ERP is.

De eenvoudigste manier om de waarden van aangepaste eigenschappen op te halen, is door het propertymanager-object te gebruiken. Daar is hij voor gemaakt. Het voordeel is dat het een verzameling objecten biedt en als gevolg daarvan kunt u een update doen per kavel en niet per eigendom. U hoeft alleen maar van een tabelconverter een eigenschapsverzameling te maken. U moet ook een comparator of klasse maken die ICompare() implementeert.

 

1 like

In mijn geval zou de link ERP => alleen SW zijn.

Is er hulp om te weten hoe u de waarden van aangepaste eigenschappen kunt ophalen via propertymanager?

Ik vind het moeilijk om uit te zoeken hoe ik alles moet doen wat je me vertelt

Ja, er is een hulp, die van SW of Google API's.

Als je moeite hebt om te begrijpen wat ik je vertel, pak dan pen en papier, schrijf op wat je wilt doen en het zal duidelijker worden:)

Het idee is simpel:

Gegevens van een product in het ERP opnemen

Zoek het bijbehorende sw-bestand en open het

Werk de gegevens in het sw-bestand bij

Sla het sw-bestand op en sluit het

Doe dit voor alle ERP-producten

Dat is het basisprincipe.

Wat u kunt doen door een service te doorlopen is:

Luister naar de ERP-database

Over een wijziging in een "product"-tabel

Open het sw-bestand

Shift, opslaan, sluiten van het sw-bestand

Met woorden realiseren we ons meteen dat de ene alle gegevens van de ERP-producten zal verwerken, terwijl de andere alleen zal updaten als er behoefte aan is op een enkel sw-bestand.

1 like

Ik begrijp de logica van de uitvoering van het probleem. Het is voor de conversie naar een programmeerfunctie waar ik meer moeite mee heb

In het voorbeeld dat je me geeft, gebeurt het openen, wijzigen, opslaan en sluiten op de achtergrond en heel snel? Zal de verwerkingstijd van de database snel zijn (ik zou zeggen dat 10min snel is voor meer dan 1000 3D onderdelen)?

 

In ons geval denk ik dat deze eenvoudige logica ook zou kunnen werken, omdat ik niet uit de nomenclatuur en plannen kom zonder de betreffende assemblages en dus ook de onderdelen te bewerken

 

Wanneer een kamer open is

Kijk of Internal Ref bestaat => Zo niet END

Zo ja,

Zoek naar de ref in de BDD quadratus

Controleer of de eigenschappen van het SW-onderdeel overeenkomen => Zo niet, update ze en sla ze op

              Zo ja, EINDE

 

Ik denk dat de interne referentie zal dienen als een liaison tussen SW en het ERP.

 

Hallo

@f.halluin, ik zie in uw profiel dat u een MyCadServices-klant bent, dus u hoeft geen tijd te verspillen aan ontwikkelingen, alle tools die u nodig heeft, bestaan al in de MyCad-tools en degene die het nuttigst voor u zal zijn, is integratie waarmee u een massaal eigendomsherstel kunt uitvoeren op al uw CAD-databases in vergelijking met een Excel-bestand of iets anders uit uw ERP.

 

@+

2 likes

Bedankt coyote, maar het lijkt erop dat ik geen abonnement heb dat het gebruik van mycadtool toestaat.

Zou ik met deze tool ook de SW-eigenschappen kunnen vervangen door die van het ERP?